home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_xntp.idb / usr / freeware / src / xntp / xntp3-5.93e.diff.z / xntp3-5.93e.diff
Encoding:
Text File  |  1999-01-26  |  95.5 KB  |  3,199 lines

  1. diff -urN xntp3-5.93d/ChangeLog xntp3-5.93e/ChangeLog
  2. --- xntp3-5.93d/ChangeLog    Tue Jun 23 22:10:25 1998
  3. +++ xntp3-5.93e/ChangeLog    Mon Aug 10 18:21:30 1998
  4. @@ -1,3 +1,20 @@
  5. +Mon Aug 10 18:18:40 1998  Harlan Stenn  <stenn@whimsy.udel.edu>
  6. +
  7. +    * configure.in: 5.93e
  8. +    
  9. +    - Use the latest version of the mdX routines if __NetBSD__
  10. +    - Add missing prototypes
  11. +    - Don't compare against EOF in ntp_getopt; the getopt functions
  12. +      are defined to return -1.
  13. +    - NetBSD is broken with respect to clock_settime in that it does not
  14. +      define CLOCK_REALTIME yet. Check for that.
  15. +    - Make functions in the function lists have consistant signatures and
  16. +      widen prototypes where necessary.
  17. +    - Fix a printf argument.
  18. +    - make main declarations consistant; use int main instead of void
  19. +      always, and add prototypes for the appropriate main function.
  20. +    From: Christos Zoulas <christos@zoulas.com>
  21. +
  22.  Tue Jun 23 22:09:07 1998  Harlan Stenn  <stenn@whimsy.udel.edu>
  23.  
  24.      * configure.in: 5.93d
  25. diff -urN xntp3-5.93d/configure xntp3-5.93e/configure
  26. --- xntp3-5.93d/configure    Tue Jun 23 22:11:22 1998
  27. +++ xntp3-5.93e/configure    Mon Aug 10 18:21:48 1998
  28. @@ -787,7 +787,7 @@
  29.  
  30.  PACKAGE=xntp3
  31.  
  32. -VERSION=5.93d
  33. +VERSION=5.93e
  34.  
  35.  if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
  36.    { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
  37. diff -urN xntp3-5.93d/configure.in xntp3-5.93e/configure.in
  38. --- xntp3-5.93d/configure.in    Tue Jun 23 22:10:29 1998
  39. +++ xntp3-5.93e/configure.in    Mon Aug 10 18:21:32 1998
  40. @@ -1,7 +1,7 @@
  41.  dnl -*-fundamental-*-
  42.  dnl Process this file with autoconf to produce a configure script.
  43.  AC_INIT(xntpd/ntp_refclock.c)
  44. -AM_INIT_AUTOMAKE(xntp3, 5.93d)
  45. +AM_INIT_AUTOMAKE(xntp3, 5.93e)
  46.  AC_CANONICAL_SYSTEM
  47.  AC_DEFINE_UNQUOTED(STR_SYSTEM, "$target")
  48.  AM_CONFIG_HEADER(config.h)
  49. diff -urN xntp3-5.93d/include/parse.h xntp3-5.93e/include/parse.h
  50. --- xntp3-5.93d/include/parse.h    Mon Dec  9 20:49:14 1996
  51. +++ xntp3-5.93e/include/parse.h    Mon Aug 10 18:14:45 1998
  52. @@ -335,11 +335,16 @@
  53.  
  54.  struct clockformat
  55.  {
  56. -  u_long    (*input)();    /* special input protocol - implies fixed format */
  57. -  u_long        (*convert)();    /* conversion routine */
  58. -  void          (*syncevt)();    /* routine for handling RS232 sync events (time stamps) */
  59. -  u_long        (*syncpps)();    /* PPS input routine */
  60. -  u_long        (*synth)();    /* time code synthesizer */
  61. +  u_long    (*input)    /* special input protocol - implies fixed format */
  62. +    P((parse_t *, unsigned int, timestamp_t *));
  63. +  u_long        (*convert)    /* conversion routine */
  64. +    P((char *, unsigned int, void *, clocktime_t *, void *));
  65. +  void          (*syncevt)    /* routine for handling RS232 sync events (time stamps) */
  66. +    P((parse_t *, timestamp_t *, void *, u_long));
  67. +  u_long        (*syncpps)    /* PPS input routine */
  68. +    P((parse_t *, int, timestamp_t *));
  69. +  u_long        (*synth)    /* time code synthesizer */
  70. +    P((parse_t *, timestamp_t *));
  71.    void           *data;        /* local parameters */
  72.    char           *name;        /* clock format name */
  73.    unsigned short  length;    /* maximum length of data packet */
  74. @@ -371,7 +376,7 @@
  75.  
  76.  extern time_t parse_to_unixtime P((clocktime_t *, u_long *));
  77.  extern u_long updatetimeinfo P((parse_t *, time_t, u_long, u_long));
  78. -extern void syn_simple P((parse_t *, timestamp_t *, struct format *, u_long));
  79. +extern void syn_simple P((parse_t *, timestamp_t *, void *, u_long));
  80.  extern u_long pps_simple P((parse_t *, int, timestamp_t *));
  81.  #endif
  82.  
  83. diff -urN xntp3-5.93d/libntp/a_md512crypt.c xntp3-5.93e/libntp/a_md512crypt.c
  84. --- xntp3-5.93d/libntp/a_md512crypt.c    Tue Jul 15 00:31:53 1997
  85. +++ xntp3-5.93e/libntp/a_md512crypt.c    Mon Aug 10 18:14:33 1998
  86. @@ -74,6 +74,9 @@
  87.      u_int32 *pkt;
  88.      int length;    /* total length of encrypted area */
  89.  {
  90. +#ifdef __NetBSD__
  91. +    unsigned char hash[16];
  92. +#endif
  93.      /*
  94.       *  Don't bother checking the keys.  The first stage would have
  95.       *  handled that.  Finish up the generation by also including the
  96. @@ -81,10 +84,18 @@
  97.       */
  98.  
  99.      MD5Update(&ctx, (unsigned const char *)(pkt) + length - 8, 8);
  100. +#ifdef __NetBSD__
  101. +    MD5Final(hash, &ctx);
  102. +#else
  103.      MD5Final(&ctx);
  104. +#endif
  105.  
  106.      memmove((char *) &pkt[NOCRYPT_int32S + length/sizeof(u_int32)],
  107. -        (char *) ctx.digest,        
  108. +#ifdef __NetBSD__
  109. +        (char *) hash,
  110. +#else
  111. +        (char *) ctx.digest,
  112. +#endif
  113.          BLOCK_OCTETS);
  114.      return (4 + BLOCK_OCTETS);
  115.  }
  116. diff -urN xntp3-5.93d/libntp/a_md5decrypt.c xntp3-5.93e/libntp/a_md5decrypt.c
  117. --- xntp3-5.93d/libntp/a_md5decrypt.c    Mon Aug 11 01:21:51 1997
  118. +++ xntp3-5.93e/libntp/a_md5decrypt.c    Mon Aug 10 18:14:33 1998
  119. @@ -39,6 +39,9 @@
  120.      int length;        /* length of variable data in octets */
  121.  {
  122.      MD5_CTX ctx;
  123. +#ifdef __NetBSD__
  124. +    unsigned char hash[16];
  125. +#endif
  126.  
  127.      authdecryptions++;
  128.  
  129. @@ -51,9 +54,18 @@
  130.      MD5Init(&ctx);
  131.      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  132.      MD5Update(&ctx, (unsigned const char *)pkt, length);
  133. +#ifdef __NetBSD__
  134. +    MD5Final(hash, &ctx);
  135. +#else
  136.      MD5Final(&ctx);
  137. +#endif
  138.  
  139. -    return (!memcmp((const char *)ctx.digest,
  140. +    return (!memcmp(
  141. +#ifdef __NetBSD__
  142. +            (const char *) hash,
  143. +#else
  144. +            (const char *) ctx.digest,
  145. +#endif
  146.              (const char *)pkt + length + 4,
  147.              BLOCK_OCTETS));
  148.  }
  149. diff -urN xntp3-5.93d/libntp/a_md5encrypt.c xntp3-5.93e/libntp/a_md5encrypt.c
  150. --- xntp3-5.93d/libntp/a_md5encrypt.c    Tue Jul 15 00:32:20 1997
  151. +++ xntp3-5.93e/libntp/a_md5encrypt.c    Mon Aug 10 18:14:33 1998
  152. @@ -45,6 +45,9 @@
  153.  {
  154.      MD5_CTX ctx;
  155.      int len;        /* in 4 byte quantities */
  156. +#ifdef __NetBSD__
  157. +    unsigned char hash[16];
  158. +#endif
  159.  
  160.      authencryptions++;
  161.  
  162. @@ -64,10 +67,18 @@
  163.      MD5Init(&ctx);
  164.      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  165.      MD5Update(&ctx, (unsigned const char *)pkt, length);
  166. +#ifdef __NetBSD__
  167. +    MD5Final(hash, &ctx);
  168. +#else
  169.      MD5Final(&ctx);
  170. +#endif
  171.  
  172.      memmove((char *)&pkt[NOCRYPT_int32S + len],
  173. -        (char *)ctx.digest,
  174. +#ifdef __NetBSD__
  175. +        (char *) hash,
  176. +#else
  177. +        (char *) ctx.digest,
  178. +#endif
  179.          BLOCK_OCTETS);
  180.      return (4 + BLOCK_OCTETS);    /* return size of key and MAC  */
  181.  }
  182. diff -urN xntp3-5.93d/libntp/getopt.c xntp3-5.93e/libntp/getopt.c
  183. --- xntp3-5.93d/libntp/getopt.c    Thu Mar  5 22:00:37 1998
  184. +++ xntp3-5.93e/libntp/getopt.c    Mon Aug 10 18:14:33 1998
  185. @@ -30,6 +30,8 @@
  186.  static char    *scan = NULL;    /* Private scan pointer. */
  187.  static const char    *prog = "amnesia";
  188.  
  189. +static int badopt P((char *, int));
  190. +
  191.  /*
  192.   * Print message about a bad option.
  193.   */
  194. diff -urN xntp3-5.93d/libntp/humandate.c xntp3-5.93e/libntp/humandate.c
  195. --- xntp3-5.93d/libntp/humandate.c    Mon Aug 11 01:07:20 1997
  196. +++ xntp3-5.93e/libntp/humandate.c    Mon Aug 10 18:14:33 1998
  197. @@ -20,6 +20,8 @@
  198.          "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
  199.  };
  200.  
  201. +char *humanlogtime P((void));
  202. +
  203.  char *
  204.  humandate(ntptime)
  205.      u_long ntptime;
  206. diff -urN xntp3-5.93d/libntp/lib_strbuf.h xntp3-5.93e/libntp/lib_strbuf.h
  207. --- xntp3-5.93d/libntp/lib_strbuf.h    Sat Aug  3 23:34:01 1996
  208. +++ xntp3-5.93e/libntp/lib_strbuf.h    Mon Aug 10 18:14:33 1998
  209. @@ -25,3 +25,5 @@
  210.  extern char lib_stringbuf[LIB_NUMBUFS][LIB_BUFLENGTH];
  211.  extern int lib_nextbuf;
  212.  extern int lib_inited;
  213. +
  214. +void init_lib P((void));
  215. diff -urN xntp3-5.93d/libntp/machines.c xntp3-5.93e/libntp/machines.c
  216. --- xntp3-5.93d/libntp/machines.c    Wed Apr 29 22:09:50 1998
  217. +++ xntp3-5.93e/libntp/machines.c    Mon Aug 10 18:14:33 1998
  218. @@ -112,7 +112,7 @@
  219.  }
  220.  #endif /* SYS_PTX */
  221.  
  222. -#ifdef HAVE_CLOCK_SETTIME
  223. +#if defined(HAVE_CLOCK_SETTIME) && defined(CLOCK_REALTIME)
  224.  const char *set_tod_using = "clock_settime";
  225.  
  226.  /*#include <time.h>    */
  227. @@ -131,7 +131,7 @@
  228.    return clock_settime(CLOCK_REALTIME, &ts);
  229.  }
  230.  
  231. -#else /* not HAVE_CLOCK_SETTIME */
  232. +#else /* not HAVE_CLOCK_SETTIME || not CLOCK_REALTIME */
  233.  # ifdef HAVE_SETTIMEOFDAY
  234.  const char *set_tod_using = "settimeofday";
  235.  # else /* not (HAVE_SETTIMEOFDAY || HAVE_CLOCK_SETTIME) */
  236. diff -urN xntp3-5.93d/libparse/clk_computime.c xntp3-5.93e/libparse/clk_computime.c
  237. --- xntp3-5.93d/libparse/clk_computime.c    Mon Jan 20 22:02:04 1997
  238. +++ xntp3-5.93e/libparse/clk_computime.c    Mon Aug 10 18:17:34 1998
  239. @@ -63,15 +63,15 @@
  240.      0
  241.  };
  242.  
  243. -static u_long   cvt_computime();
  244. +static u_long cvt_computime P((char *, unsigned int, void *, clocktime_t *, void *));
  245.  
  246.  clockformat_t   clock_computime =
  247.  {
  248. -    (unsigned long (*) ()) 0,    /* no input handling */
  249. +    NULL,                /* no input handling */
  250.      cvt_computime,            /* Computime conversion */
  251.      syn_simple,            /* easy time stamps for RS232 (fallback) */
  252. -    (u_long (*)())0,        /* no PPS monitoring */
  253. -    (u_long(*) ())0,        /* no time code synthesizer monitoring */
  254. +    NULL,                /* no PPS monitoring */
  255. +    NULL,                /* no time code synthesizer monitoring */
  256.      (void *)&computime_fmt,        /* conversion configuration */
  257.      "Diem's Computime Radio Clock",    /* Computime Radio Clock */
  258.      24,                /* string buffer */
  259. @@ -89,12 +89,14 @@
  260.   * convert simple type format
  261.   */
  262.  static          u_long
  263. -cvt_computime(buffer, size, format, clock)
  264. +cvt_computime(buffer, size, vf, clock, vt)
  265.      register char  *buffer;
  266. -    register int    size;
  267. -    register struct format *format;
  268. +    register unsigned int    size;
  269. +    register void  *vf;
  270.      register clocktime_t *clock;
  271. +    register void  *vt;
  272.  {
  273. +    register struct format *format = vf;
  274.  
  275.      if (!Strok(buffer, format->fixed_string)) { 
  276.          return CVT_NONE;
  277. diff -urN xntp3-5.93d/libparse/clk_dcf7000.c xntp3-5.93e/libparse/clk_dcf7000.c
  278. --- xntp3-5.93d/libparse/clk_dcf7000.c    Mon Jan 20 22:02:05 1997
  279. +++ xntp3-5.93e/libparse/clk_dcf7000.c    Mon Aug 10 18:17:34 1998
  280. @@ -40,15 +40,15 @@
  281.    0
  282.  };    
  283.  
  284. -static u_long cvt_dcf7000();
  285. +static u_long cvt_dcf7000 P((char *, unsigned int, void *, clocktime_t *, void *));
  286.  
  287.  clockformat_t clock_dcf7000 =
  288.  {
  289. -  (unsigned long (*)())0,    /* no input handling */
  290. +  NULL,                /* no input handling */
  291.    cvt_dcf7000,            /* ELV DCF77 conversion */
  292.    syn_simple,            /* easy time stamps */
  293. -  (u_long (*)())0,        /* no direct PPS monitoring */
  294. -  (u_long (*)())0,        /* no time code synthesizer monitoring */
  295. +  NULL,                /* no direct PPS monitoring */
  296. +  NULL,                /* no time code synthesizer monitoring */
  297.    (void *)&dcf7000_fmt,        /* conversion configuration */
  298.    "ELV DCF7000",        /* ELV clock */
  299.    24,                /* string buffer */
  300. @@ -66,12 +66,14 @@
  301.   * convert dcf7000 type format
  302.   */
  303.  static u_long
  304. -cvt_dcf7000(buffer, size, format, clock)
  305. +cvt_dcf7000(buffer, size, vf, clock, vt)
  306.    register char          *buffer;
  307. -  register int            size;
  308. -  register struct format *format;
  309. +  register unsigned int   size;
  310. +  register void          *vf;
  311.    register clocktime_t   *clock;
  312. +  register void          *vt;
  313.  {
  314. +  register struct format *format = vf;
  315.    if (!Strok(buffer, format->fixed_string))
  316.      {
  317.        return CVT_NONE;
  318. diff -urN xntp3-5.93d/libparse/clk_hopf6021.c xntp3-5.93e/libparse/clk_hopf6021.c
  319. --- xntp3-5.93d/libparse/clk_hopf6021.c    Wed May  7 22:20:25 1997
  320. +++ xntp3-5.93e/libparse/clk_hopf6021.c    Mon Aug 10 18:17:34 1998
  321. @@ -113,15 +113,16 @@
  322.      ('A' <= (x) && (x) <= 'F') ? (x) - 'A' + 10 : \
  323.      -1)
  324.              
  325. -static unsigned long cvt_hopf6021();
  326.  
  327. +static u_long cvt_hopf6021 P((char *, unsigned int, void *, clocktime_t *, void *));
  328. +
  329.  clockformat_t clock_hopf6021 =
  330.  {
  331. -  (unsigned long (*)())0,       /* no input handling */
  332. +  NULL,                /* no input handling */
  333.    cvt_hopf6021,                 /* Radiocode clock conversion */
  334.    syn_simple,                   /* easy time stamps for RS232 (fallback) */
  335. -  (unsigned long (*)())0,       /* no direct PPS monitoring */
  336. -  (unsigned long (*)())0,       /* no time code synthesizer monitoring */
  337. +  NULL,                 /* no direct PPS monitoring */
  338. +  NULL,             /* no time code synthesizer monitoring */
  339.    (void *)&hopf6021_fmt,        /* conversion configuration */
  340.    "hopf Funkuhr 6021",          /* clock format name */
  341.    19,                           /* string buffer */
  342. @@ -133,14 +134,16 @@
  343.    0                             /* sync symbol */
  344.  };
  345.  
  346. -static unsigned long
  347. -cvt_hopf6021(buffer, size, format, clock)
  348. +static u_long
  349. +cvt_hopf6021(buffer, size, vf, clock, vt)
  350.      register char          *buffer;
  351. -    register int            size;
  352. -    register struct format *format;
  353. +    register unsigned int   size;
  354. +    register void          *vf;
  355.      register clocktime_t   *clock;
  356. +    register void          *vt;
  357.  {
  358. -    char status,weekday;
  359. +    register struct format *format = vf;
  360. +    int status,weekday;
  361.  
  362.      if (!Strok(buffer, format->fixed_string))
  363.      {
  364. diff -urN xntp3-5.93d/libparse/clk_meinberg.c xntp3-5.93e/libparse/clk_meinberg.c
  365. --- xntp3-5.93d/libparse/clk_meinberg.c    Mon Jan 20 22:02:05 1997
  366. +++ xntp3-5.93e/libparse/clk_meinberg.c    Mon Aug 10 18:17:35 1998
  367. @@ -142,17 +142,18 @@
  368.    }
  369.  };
  370.  
  371. -static u_long cvt_meinberg();
  372. -static u_long cvt_mgps();
  373.  
  374. +static u_long cvt_meinberg P((char *, unsigned int, void *, clocktime_t *, void *));
  375. +static u_long cvt_mgps P((char *, unsigned int, void *, clocktime_t *, void *));
  376. +
  377.  clockformat_t clock_meinberg[] =
  378.  {
  379.    {
  380. -    (unsigned long (*)())0,    /* no input handling */
  381. +    NULL,            /* no input handling */
  382.      cvt_meinberg,        /* Meinberg conversion */
  383.      syn_simple,            /* easy time stamps for RS232 (fallback) */
  384.      pps_simple,            /* easy PPS monitoring */
  385. -    (u_long (*)())0,        /* no time code synthesizer monitoring */
  386. +    NULL,            /* no time code synthesizer monitoring */
  387.      (void *)&meinberg_fmt[0],    /* conversion configuration */
  388.      "Meinberg Standard",    /* Meinberg simple format - beware */
  389.      32,                /* string buffer */
  390. @@ -164,11 +165,11 @@
  391.      '\0'
  392.    },
  393.    {
  394. -    (unsigned long (*)())0,    /* no input handling */
  395. +    NULL,            /* no input handling */
  396.      cvt_meinberg,        /* Meinberg conversion */
  397.      syn_simple,            /* easy time stamps for RS232 (fallback) */
  398.      pps_simple,            /* easy PPS monitoring */
  399. -    (u_long (*)())0,        /* no time code synthesizer monitoring */
  400. +    NULL,            /* no time code synthesizer monitoring */
  401.      (void *)&meinberg_fmt[1],    /* conversion configuration */
  402.      "Meinberg Extended",    /* Meinberg enhanced format */
  403.      32,                /* string buffer */
  404. @@ -180,11 +181,11 @@
  405.      '\0'
  406.    },
  407.    {
  408. -    (unsigned long (*)())0,    /* no input handling */
  409. +    NULL,            /* no input handling */
  410.      cvt_mgps,            /* Meinberg GPS166 conversion */
  411.      syn_simple,            /* easy time stamps for RS232 (fallback) */
  412.      pps_simple,            /* easy PPS monitoring */
  413. -    (u_long (*)())0,        /* no time code synthesizer monitoring */
  414. +    NULL,            /* no time code synthesizer monitoring */
  415.      (void *)&meinberg_fmt[2],    /* conversion configuration */
  416.      "Meinberg GPS Extended",    /* Meinberg FAU GPS format */
  417.      70,                /* string buffer */
  418. @@ -203,12 +204,14 @@
  419.   * convert simple type format
  420.   */
  421.  static u_long
  422. -cvt_meinberg(buffer, size, format, clock)
  423. +cvt_meinberg(buffer, size, vf, clock, vt)
  424.    register char          *buffer;
  425. -  register int            size;
  426. -  register struct format *format;
  427. +  register unsigned int   size;
  428. +  register void          *vf;
  429.    register clocktime_t   *clock;
  430. +  register void          *vt;
  431.  {
  432. +  register struct format *format = vf;
  433.    if (!Strok(buffer, format->fixed_string))
  434.      {
  435.        return CVT_NONE;
  436. @@ -332,12 +335,14 @@
  437.   * convert Meinberg GPS format
  438.   */
  439.  static u_long
  440. -cvt_mgps(buffer, size, format, clock)
  441. +cvt_mgps(buffer, size, vf, clock, vt)
  442.    register char          *buffer;
  443. -  register int            size;
  444. -  register struct format *format;
  445. +  register unsigned int   size;
  446. +  register void          *vf;
  447.    register clocktime_t   *clock;
  448. +  register void          *vt;
  449.  {
  450. +  register struct format *format = vf;
  451.    if (!Strok(buffer, format->fixed_string))
  452.      {
  453.        return CVT_NONE;
  454. diff -urN xntp3-5.93d/libparse/clk_rawdcf.c xntp3-5.93e/libparse/clk_rawdcf.c
  455. --- xntp3-5.93d/libparse/clk_rawdcf.c    Mon Jan 20 22:02:05 1997
  456. +++ xntp3-5.93e/libparse/clk_rawdcf.c    Mon Aug 10 18:17:35 1998
  457. @@ -84,15 +84,20 @@
  458.   * 59              - usually missing (minute indication), except for leap insertion
  459.   */
  460.  
  461. -static u_long cvt_rawdcf();
  462. -static u_long pps_rawdcf();
  463. -static u_long snt_rawdcf();
  464. +/* clk_rawdcf.c */
  465. +static u_long ext_bf P((char *, int, char *));
  466. +static unsigned pcheck P((char *, int, char *));
  467. +struct dcfparam;
  468. +static u_long convert_rawdcf P((unsigned char *, int, struct dcfparam *, clocktime_t *));
  469. +static u_long cvt_rawdcf P((char *, unsigned int, void *, clocktime_t *, void *));
  470. +static u_long pps_rawdcf P((parse_t *, int, timestamp_t *));
  471. +static u_long snt_rawdcf P((parse_t *, timestamp_t *));
  472.  
  473.  clockformat_t clock_rawdcf =
  474.  {
  475. -  (unsigned long (*)())0,    /* no input handling */
  476. +  NULL,                /* no input handling */
  477.    cvt_rawdcf,            /* raw dcf input conversion */
  478. -  (void (*)())0,        /* no character bound synchronisation */
  479. +  NULL,                /* no character bound synchronisation */
  480.    pps_rawdcf,            /* examining PPS information */
  481.    snt_rawdcf,            /* synthesize time code from input */
  482.    (void *)0,            /* buffer bit representation */
  483. @@ -314,12 +319,14 @@
  484.   * raw dcf input routine - needs to fix up 50 baud
  485.   * characters for 1/0 decision
  486.   */
  487. -static u_long cvt_rawdcf(buffer, size, param, clock)
  488. -  register unsigned char   *buffer;
  489. -  register int              size;
  490. -  register void            *param;
  491. +static u_long cvt_rawdcf(bp, size, vf, clock, vt)
  492. +  register char          *bp;
  493. +  register unsigned int     size;
  494. +  register void            *vf;
  495.    register clocktime_t     *clock;
  496. +  register void            *vt;
  497.  {
  498. +  register unsigned char *buffer = (unsigned char *) bp;
  499.    register unsigned char *s = buffer;
  500.    register unsigned char *e = buffer + size;
  501.    register unsigned char *b = dcfparam.onebits;
  502. @@ -366,7 +373,7 @@
  503.      }
  504.        else
  505.      {
  506. -      parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: character check for 0x%x@%d FAILED\n", *s, s - buffer));
  507. +      parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: character check for 0x%x@%ld FAILED\n", *s, (long)(s - buffer)));
  508.        *s = ~0;
  509.        rtc = CVT_FAIL|CVT_BADFMT;
  510.      }
  511. diff -urN xntp3-5.93d/libparse/clk_rcc8000.c xntp3-5.93e/libparse/clk_rcc8000.c
  512. --- xntp3-5.93d/libparse/clk_rcc8000.c    Mon Jan 20 22:02:06 1997
  513. +++ xntp3-5.93e/libparse/clk_rcc8000.c    Mon Aug 10 18:17:35 1998
  514. @@ -52,15 +52,15 @@
  515.    0 
  516.  };
  517.  
  518. -static unsigned long cvt_rcc8000();
  519. +static u_long cvt_rcc8000 P((char *, unsigned int, void *, clocktime_t *, void *));
  520.  
  521.  clockformat_t clock_rcc8000 =
  522.  {
  523. -  (unsigned long (*)())0,       /* no input handling */
  524. -  cvt_rcc8000,        /* Radiocode clock conversion */
  525. +  NULL,                /* no input handling */
  526. +  cvt_rcc8000,            /* Radiocode clock conversion */
  527.    syn_simple,            /* easy time stamps for RS232 (fallback) */
  528. -  (unsigned long (*)())0,       /* no direct PPS monitoring */
  529. -  (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  530. +  NULL,                /* no direct PPS monitoring */
  531. +  NULL,                /* no time code synthesizer monitoring */
  532.    (void *)&rcc8000_fmt,        /* conversion configuration */
  533.    "Radiocode RCC8000",
  534.    31,                /* string buffer */
  535. @@ -73,12 +73,14 @@
  536.  };
  537.  
  538.  static unsigned long
  539. -cvt_rcc8000(buffer, size, format, clock)
  540. +cvt_rcc8000(buffer, size, vf, clock, vt)
  541.    register char          *buffer;
  542. -  register int            size;
  543. -  register struct format *format;
  544. +  register unsigned int   size;
  545. +  register void          *vf;
  546.    register clocktime_t   *clock;
  547. +  register void          *vt;
  548.  {
  549. +  register struct format *format = vf;
  550.    if (!Strok(buffer, format->fixed_string)) return CVT_NONE;
  551.  #define    OFFS(x) format->field_offsets[(x)].offset
  552.  #define STOI(x, y) Stoi(&buffer[OFFS(x)], y, format->field_offsets[(x)].length)
  553. diff -urN xntp3-5.93d/libparse/clk_schmid.c xntp3-5.93e/libparse/clk_schmid.c
  554. --- xntp3-5.93d/libparse/clk_schmid.c    Mon Jan 20 22:02:06 1997
  555. +++ xntp3-5.93e/libparse/clk_schmid.c    Mon Aug 10 18:17:35 1998
  556. @@ -63,15 +63,15 @@
  557.  #define   WS_MEST    0x04
  558.  #define WS_LEAP        0x10
  559.  
  560. -static u_long cvt_schmid();
  561. +static u_long cvt_schmid P((char *, unsigned int, void *, clocktime_t *, void *));
  562.  
  563.  clockformat_t clock_schmid =
  564.  {
  565. -  (unsigned long (*)())0,    /* no input handling */
  566. +  NULL,                /* no input handling */
  567.    cvt_schmid,            /* Schmid conversion */
  568.    syn_simple,            /* easy time stamps */
  569. -  (u_long (*)())0,        /* not direct PPS monitoring */
  570. -  (u_long (*)())0,        /* no time code synthesizer monitoring */
  571. +  NULL,                /* not direct PPS monitoring */
  572. +  NULL,                /* no time code synthesizer monitoring */
  573.    (void *)0,            /* conversion configuration */
  574.    "Schmid",            /* Schmid receiver */
  575.    12,                /* binary data buffer */
  576. @@ -85,12 +85,14 @@
  577.  
  578.  
  579.  static u_long
  580. -cvt_schmid(buffer, size, format, clock)
  581. -  register unsigned char *buffer;
  582. -  register int            size;
  583. -  register struct format *format;
  584. +cvt_schmid(bp, size, vf, clock, vt)
  585. +  register char      *bp;
  586. +  register unsigned int   size;
  587. +  register void      *vf;
  588.    register clocktime_t   *clock;
  589. +  register void      *vt;
  590.  {
  591. +  register unsigned char *buffer = (unsigned char *) bp;
  592.    if ((size != 11) || (buffer[10] != (unsigned char)'\375'))
  593.      {
  594.        return CVT_NONE;
  595. diff -urN xntp3-5.93d/libparse/clk_trimtaip.c xntp3-5.93e/libparse/clk_trimtaip.c
  596. --- xntp3-5.93d/libparse/clk_trimtaip.c    Mon Jan 20 22:02:06 1997
  597. +++ xntp3-5.93e/libparse/clk_trimtaip.c    Mon Aug 10 18:17:35 1998
  598. @@ -43,15 +43,18 @@
  599.    0
  600.  };
  601.  
  602. -static unsigned long cvt_trimtaip();
  603.  
  604. +
  605. +/* clk_trimtaip.c */
  606. +static u_long cvt_trimtaip P((char *, unsigned int, void *, clocktime_t *, void *));
  607. +
  608.  clockformat_t clock_trimtaip =
  609.  {
  610. -  (unsigned long (*)())0,    /* no input handling */
  611. +  NULL,                /* no input handling */
  612.    cvt_trimtaip,            /* Trimble conversion */
  613.    syn_simple,            /* easy time stamps for RS232 (fallback) */
  614.    pps_simple,            /* easy PPS monitoring */
  615. -  (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  616. +  NULL,                /* no time code synthesizer monitoring */
  617.    (void *)&trimsv6_fmt,        /* conversion configuration */
  618.    "Trimble SV6/TAIP",
  619.    37,                /* string buffer */
  620. @@ -63,13 +66,15 @@
  621.    '\0'
  622.  };
  623.  
  624. -static unsigned long
  625. -cvt_trimtaip(buffer, size, format, clock)
  626. +static u_long
  627. +cvt_trimtaip(buffer, size, vf, clock, vt)
  628.    register char          *buffer;
  629. -  register int            size;
  630. -  register struct format *format;
  631. +  register unsigned int   size;
  632. +  register void         *vf;
  633.    register clocktime_t   *clock;
  634. +  register void         *vt;
  635.  {
  636. +  register struct format *format = vf;
  637.    long gpsfix;
  638.    u_char calc_csum = 0;
  639.    long   recv_csum;
  640. diff -urN xntp3-5.93d/libparse/clk_trimtsip.c xntp3-5.93e/libparse/clk_trimtsip.c
  641. --- xntp3-5.93d/libparse/clk_trimtsip.c    Wed May  7 22:20:25 1997
  642. +++ xntp3-5.93e/libparse/clk_trimtsip.c    Mon Aug 10 18:17:35 1998
  643. @@ -104,8 +104,11 @@
  644.    u_char  t_leap;        /* possible leap warning */
  645.  };
  646.  
  647. -static unsigned long inp_tsip();
  648. -static unsigned long cvt_trimtsip();
  649. +static u_long inp_tsip P((parse_t *, unsigned int, timestamp_t *));
  650. +static u_long cvt_trimtsip P((char *, unsigned int, void *, clocktime_t *, void *));
  651. +static float getflt P((u_char *));
  652. +static double getdbl P((u_char *));
  653. +static int getint P((u_char *));
  654.  
  655.  struct clockformat clock_trimtsip =
  656.  {
  657. @@ -113,8 +116,8 @@
  658.    cvt_trimtsip,            /* Trimble TSIP conversion */
  659.    syn_simple,            /* easy time stamps for RS232 (fallback) */
  660.    pps_simple,            /* easy PPS monitoring */
  661. -  (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  662. -  (void *)0,            /* no configuration data */
  663. +  NULL,                /* no time code synthesizer monitoring */
  664. +  NULL,                /* no configuration data */
  665.    "Trimble SV6/TSIP",
  666.    128,                /* input buffer */
  667.    CVT_FIXEDONLY,                /* we do our own input handling */
  668. @@ -131,9 +134,10 @@
  669.  #define DLE        0x10
  670.  #define ETX        0x03
  671.  
  672. +
  673.  static unsigned long inp_tsip(parseio, ch, ctime)
  674.       register parse_t      *parseio;
  675. -     register unsigned char ch;
  676. +     register unsigned int ch;
  677.       register timestamp_t  *ctime;
  678.  {
  679.    register struct trimble *t = (struct trimble *)parseio->parse_pdata;
  680. @@ -213,13 +217,14 @@
  681.   * convert TSIP type format
  682.   */
  683.  static unsigned long
  684. -cvt_trimtsip(buffer, size, format, clock, t)
  685. +cvt_trimtsip(buffer, size, vf, clock, vt)
  686.    register char          *buffer;
  687. -  register int            size;
  688. -  register struct format *format;
  689. +  register unsigned int   size;
  690. +  register void         *vf;
  691.    register clocktime_t   *clock;
  692. -  register struct trimble *t;
  693. +  register void         *vt;
  694.  {
  695. +  register struct trimble *t = vt;
  696.  #define mb(_X_) (buffer[2+(_X_)]) /* shortcut for buffer access */
  697.    register u_char cmd;
  698.  
  699. diff -urN xntp3-5.93d/libparse/parse.c xntp3-5.93e/libparse/parse.c
  700. --- xntp3-5.93d/libparse/parse.c    Thu Jul 10 23:19:33 1997
  701. +++ xntp3-5.93e/libparse/parse.c    Mon Aug 10 18:17:44 1998
  702. @@ -73,7 +73,11 @@
  703.  extern clockformat_t *clockformats[];
  704.  extern unsigned short nformats;
  705.  
  706. -static u_long timepacket();
  707. +static int Strlen P((char *));
  708. +static int Strcmp P((char *, char *));
  709. +static int timedout P((parse_t *, timestamp_t *));
  710. +static int setup_bitmaps P((parse_t *, unsigned int, unsigned int));
  711. +static u_long timepacket P((parse_t *));
  712.  
  713.  /*
  714.   * strings support usually not in kernel - duplicated, but what the heck
  715. @@ -160,8 +164,8 @@
  716.  static int
  717.  setup_bitmaps(parseio, low, high)
  718.    register parse_t *parseio;
  719. -  register unsigned short low;
  720. -  register unsigned short high;
  721. +  register unsigned int low;
  722. +  register unsigned int high;
  723.  {
  724.    register unsigned short i;
  725.    register int f = 0;
  726. @@ -834,10 +838,10 @@
  727.   */
  728.  /*ARGSUSED*/
  729.  void
  730. -syn_simple(parseio, ts, format, why)
  731. +syn_simple(parseio, ts, vf, why)
  732.    register parse_t *parseio;
  733.    register timestamp_t *ts;
  734. -  register struct format *format;
  735. +  register void *vf;
  736.    register u_long why;
  737.  {
  738.    parseio->parse_dtime.parse_stime = *ts;
  739. diff -urN xntp3-5.93d/ntpdate/ntpdate.c xntp3-5.93e/ntpdate/ntpdate.c
  740. --- xntp3-5.93d/ntpdate/ntpdate.c    Tue Mar  3 00:55:25 1998
  741. +++ xntp3-5.93e/ntpdate/ntpdate.c    Mon Aug 10 18:33:04 1998
  742. @@ -220,6 +220,9 @@
  743.  #endif /* SYS_WINNT */
  744.  
  745.  #ifdef NO_MAIN_ALLOWED
  746. +void ntpdatemain P((int, char *[]));
  747. +
  748. +void
  749.  CALL(ntpdate,"ntpdate",ntpdatemain);
  750.  
  751.  void clear_globals()
  752. @@ -280,17 +283,18 @@
  753.    always_step = 0;
  754.    never_step = 0;
  755.  }
  756. +#else
  757. +int main P((int, char *[]));
  758.  #endif
  759.  
  760.  /*
  761.   * Main program.  Initialize us and loop waiting for I/O and/or
  762.   * timer expiries.
  763.   */
  764. -void
  765.  #ifndef NO_MAIN_ALLOWED
  766. -main
  767. +int main
  768.  #else
  769. -ntpdatemain
  770. +void ntpdatemain
  771.  #endif /* NO_MAIN_ALLOWED */
  772.  (argc, argv)
  773.       int argc;
  774. @@ -332,7 +336,7 @@
  775.    /*
  776.     * Decode argument list
  777.     */
  778. -  while ((c = ntp_getopt(argc, argv, "a:bBde:k:o:p:qr:st:uv")) != EOF)
  779. +  while ((c = ntp_getopt(argc, argv, "a:bBde:k:o:p:qr:st:uv")) != -1)
  780.      switch (c)
  781.        {
  782.        case 'a':
  783. diff -urN xntp3-5.93d/ntpq/ntpq.c xntp3-5.93e/ntpq/ntpq.c
  784. --- xntp3-5.93d/ntpq/ntpq.c    Thu Mar  5 22:02:16 1998
  785. +++ xntp3-5.93e/ntpq/ntpq.c    Mon Aug 10 18:14:45 1998
  786. @@ -434,6 +434,7 @@
  787.  int debug;
  788.  
  789.  #ifdef NO_MAIN_ALLOWED
  790. +void ntpqmain P((int, char *[]));
  791.  CALL(ntpq,"ntpq",ntpqmain);
  792.  
  793.  void clear_globals()
  794. @@ -449,17 +450,16 @@
  795.      numcmds = 0;
  796.      numhosts = 0;
  797.      }
  798. +#else
  799. +int main P((int, char *[]));
  800.  #endif
  801.  /*
  802.   * main - parse arguments and handle options
  803.   */
  804. -#if !defined(VMS)
  805. -void
  806. -#endif /* VMS */
  807.  #ifndef NO_MAIN_ALLOWED
  808. -main
  809. +int main
  810.  #else
  811. -ntpqmain
  812. +void ntpqmain
  813.  #endif
  814.  (argc, argv)
  815.  int argc;
  816. @@ -478,7 +478,7 @@
  817.      delay_time.l_uf = DEFDELAY;
  818.  
  819.      progname = argv[0];
  820. -    while ((c = ntp_getopt(argc, argv, "c:dinp")) != EOF)
  821. +    while ((c = ntp_getopt(argc, argv, "c:dinp")) != -1)
  822.          switch (c) {
  823.          case 'c':
  824.              ADDCMD(ntp_optarg);
  825. diff -urN xntp3-5.93d/ntptrace/ntptrace.c xntp3-5.93e/ntptrace/ntptrace.c
  826. --- xntp3-5.93d/ntptrace/ntptrace.c    Sun Aug 10 21:23:32 1997
  827. +++ xntp3-5.93e/ntptrace/ntptrace.c    Mon Aug 10 18:15:13 1998
  828. @@ -108,13 +108,17 @@
  829.   * timer expiries.
  830.   */
  831.  #ifdef NO_MAIN_ALLOWED
  832. +void ntptracemain P((int, char *[]));
  833. +
  834.  CALL(ntptrace,"ntptrace",ntptracemain);
  835. +#else
  836. +int main P((int, char *[]));
  837.  #endif
  838. -void
  839. +
  840.  #ifndef NO_MAIN_ALLOWED
  841. -main
  842. +int main
  843.  #else
  844. -ntptracemain
  845. +void ntptracemain
  846.  #endif /* NO_MAIN_ALLOWED */
  847.  (argc, argv)
  848.      int argc;
  849. @@ -138,7 +142,7 @@
  850.      /*
  851.       * Decode argument list
  852.       */
  853. -    while ((c = ntp_getopt(argc, argv, "do:nr:t:v")) != EOF)
  854. +    while ((c = ntp_getopt(argc, argv, "do:nr:t:v")) != -1)
  855.          switch (c) {
  856.          case 'd':
  857.              ++debug;
  858. diff -urN xntp3-5.93d/patches/inbox/12 xntp3-5.93e/patches/inbox/12
  859. --- xntp3-5.93d/patches/inbox/12
  860. +++ xntp3-5.93e/patches/inbox/12    Mon Aug 10 18:05:35 1998
  861. @@ -0,0 +1,1960 @@
  862. +Received: from mail.eecis.udel.edu by whimsy.udel.edu id aa06167;
  863. +          10 Aug 1998 17:49 EDT
  864. +Received: from localhost (localhost [[UNIX: localhost]])
  865. + by hrothgar.gw.com (8.9.1/8.8.6.Beta0/2.1.kim) id RAA10454
  866. + for stenn@whimsy.udel.edu; Mon, 10 Aug 1998 17:49:39 -0400 (EDT)
  867. +Message-Id: <199808102149.RAA10454@hrothgar.gw.com>
  868. +From: Christos Zoulas <christos@zoulas.com>
  869. +Date: Mon, 10 Aug 1998 17:49:39 -0400
  870. +In-Reply-To: <4827.902780923@whimsy.udel.edu>
  871. +       from stenn@whimsy.udel.edu (Aug 10,  4:28pm)
  872. +Organization: Astron Software
  873. +X-Mailer: Mail User's Shell (7.2.6 beta(2)+dynamic 2/29/96)
  874. +To: stenn@whimsy.udel.edu
  875. +Subject: Re: xntp patches
  876. +
  877. +On Aug 10,  4:28pm, stenn@whimsy.udel.edu (stenn@whimsy.udel.edu) wrote:
  878. +-- Subject: Re: xntp patches
  879. +
  880. +| Christos,
  881. +| 
  882. +| Did you apply the 3 patches to 5.93 that are out there?
  883. +| 
  884. +| If they don't fix the problems, please send me the patches again (sorry,
  885. +| but I have  *ton* of email here and the patches you describe don't seem
  886. +| to be "handy") and I'll wrap them up with the 3 existing patches and
  887. +| cut a 5.94 release.
  888. +| 
  889. +| Harlan
  890. +
  891. +Here it is again; most of the fixes, except the md5 stuff are non-controvercial.
  892. +Note that the structure of the directories is a bit different than the standard
  893. +distribution. Also I have mandoc pages for the main programs re-written from the
  894. +html pages; maybe we could automate their generation.
  895. +
  896. +christos
  897. +
  898. +- Use the latest version of the mdX routines if __NetBSD__
  899. +- Add missing prototypes
  900. +- Don't compare against EOF in ntp_getopt; the getopt functions are defined
  901. +  to return -1.
  902. +- NetBSD is broken with respect to clock_settime in that it does not
  903. +  define CLOCK_REALTIME yet. Check for that.
  904. +- Make functions in the function lists have consistant signatures and
  905. +  widen prototypes where necessary.
  906. +- Fix a printf argument.
  907. +- make main declarations consistant; use int main instead of void always,
  908. +  and add prototypes for the appropriate main function.
  909. +
  910. +diff -rc old/lib/libntp/a_md512crypt.c new/lib/libntp/a_md512crypt.c
  911. +*** old/lib/libntp/a_md512crypt.c    Mon Aug 10 17:42:48 1998
  912. +--- new/lib/libntp/a_md512crypt.c    Mon Aug 10 17:40:19 1998
  913. +***************
  914. +*** 74,79 ****
  915. +--- 74,82 ----
  916. +      u_int32 *pkt;
  917. +      int length;    /* total length of encrypted area */
  918. +  {
  919. ++ #ifdef __NetBSD__
  920. ++     unsigned char hash[16];
  921. ++ #endif
  922. +      /*
  923. +       *  Don't bother checking the keys.  The first stage would have
  924. +       *  handled that.  Finish up the generation by also including the
  925. +***************
  926. +*** 81,90 ****
  927. +       */
  928. +  
  929. +      MD5Update(&ctx, (unsigned const char *)(pkt) + length - 8, 8);
  930. +      MD5Final(&ctx);
  931. +  
  932. +      memmove((char *) &pkt[NOCRYPT_int32S + length/sizeof(u_int32)],
  933. +!         (char *) ctx.digest,        
  934. +          BLOCK_OCTETS);
  935. +      return (4 + BLOCK_OCTETS);
  936. +  }
  937. +--- 84,101 ----
  938. +       */
  939. +  
  940. +      MD5Update(&ctx, (unsigned const char *)(pkt) + length - 8, 8);
  941. ++ #ifdef __NetBSD__
  942. ++     MD5Final(hash, &ctx);
  943. ++ #else
  944. +      MD5Final(&ctx);
  945. ++ #endif
  946. +  
  947. +      memmove((char *) &pkt[NOCRYPT_int32S + length/sizeof(u_int32)],
  948. +! #ifdef __NetBSD__
  949. +!         (char *) hash,
  950. +! #else
  951. +!         (char *) ctx.digest,
  952. +! #endif
  953. +          BLOCK_OCTETS);
  954. +      return (4 + BLOCK_OCTETS);
  955. +  }
  956. +diff -rc old/lib/libntp/a_md5decrypt.c new/lib/libntp/a_md5decrypt.c
  957. +*** old/lib/libntp/a_md5decrypt.c    Mon Aug 10 17:42:48 1998
  958. +--- new/lib/libntp/a_md5decrypt.c    Mon Aug 10 17:39:56 1998
  959. +***************
  960. +*** 39,44 ****
  961. +--- 39,47 ----
  962. +      int length;        /* length of variable data in octets */
  963. +  {
  964. +      MD5_CTX ctx;
  965. ++ #ifdef __NetBSD__
  966. ++     unsigned char hash[16];
  967. ++ #endif
  968. +  
  969. +      authdecryptions++;
  970. +  
  971. +***************
  972. +*** 51,59 ****
  973. +      MD5Init(&ctx);
  974. +      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  975. +      MD5Update(&ctx, (unsigned const char *)pkt, length);
  976. +      MD5Final(&ctx);
  977. +  
  978. +!     return (!memcmp((const char *)ctx.digest,
  979. +              (const char *)pkt + length + 4,
  980. +              BLOCK_OCTETS));
  981. +  }
  982. +--- 54,71 ----
  983. +      MD5Init(&ctx);
  984. +      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  985. +      MD5Update(&ctx, (unsigned const char *)pkt, length);
  986. ++ #ifdef __NetBSD__
  987. ++     MD5Final(hash, &ctx);
  988. ++ #else
  989. +      MD5Final(&ctx);
  990. ++ #endif
  991. +  
  992. +!     return (!memcmp(
  993. +! #ifdef __NetBSD__
  994. +!             (const char *) hash,
  995. +! #else
  996. +!             (const char *) ctx.digest,
  997. +! #endif
  998. +              (const char *)pkt + length + 4,
  999. +              BLOCK_OCTETS));
  1000. +  }
  1001. +diff -rc old/lib/libntp/a_md5encrypt.c new/lib/libntp/a_md5encrypt.c
  1002. +*** old/lib/libntp/a_md5encrypt.c    Mon Aug 10 17:42:48 1998
  1003. +--- new/lib/libntp/a_md5encrypt.c    Mon Aug 10 17:39:28 1998
  1004. +***************
  1005. +*** 45,50 ****
  1006. +--- 45,53 ----
  1007. +  {
  1008. +      MD5_CTX ctx;
  1009. +      int len;        /* in 4 byte quantities */
  1010. ++ #ifdef __NetBSD__
  1011. ++     unsigned char hash[16];
  1012. ++ #endif
  1013. +  
  1014. +      authencryptions++;
  1015. +  
  1016. +***************
  1017. +*** 64,73 ****
  1018. +      MD5Init(&ctx);
  1019. +      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  1020. +      MD5Update(&ctx, (unsigned const char *)pkt, length);
  1021. +      MD5Final(&ctx);
  1022. +  
  1023. +      memmove((char *)&pkt[NOCRYPT_int32S + len],
  1024. +!         (char *)ctx.digest,
  1025. +          BLOCK_OCTETS);
  1026. +      return (4 + BLOCK_OCTETS);    /* return size of key and MAC  */
  1027. +  }
  1028. +--- 67,84 ----
  1029. +      MD5Init(&ctx);
  1030. +      MD5Update(&ctx, (unsigned const char *)cache_key, cache_keylen);
  1031. +      MD5Update(&ctx, (unsigned const char *)pkt, length);
  1032. ++ #ifdef __NetBSD__
  1033. ++     MD5Final(hash, &ctx);
  1034. ++ #else
  1035. +      MD5Final(&ctx);
  1036. ++ #endif
  1037. +  
  1038. +      memmove((char *)&pkt[NOCRYPT_int32S + len],
  1039. +! #ifdef __NetBSD__
  1040. +!         (char *) hash,
  1041. +! #else
  1042. +!         (char *) ctx.digest,
  1043. +! #endif
  1044. +          BLOCK_OCTETS);
  1045. +      return (4 + BLOCK_OCTETS);    /* return size of key and MAC  */
  1046. +  }
  1047. +diff -rc old/lib/libntp/getopt.c new/lib/libntp/getopt.c
  1048. +*** old/lib/libntp/getopt.c    Mon Aug 10 17:42:49 1998
  1049. +--- new/lib/libntp/getopt.c    Mon Aug 10 17:38:40 1998
  1050. +***************
  1051. +*** 30,35 ****
  1052. +--- 30,37 ----
  1053. +  static char    *scan = NULL;    /* Private scan pointer. */
  1054. +  static const char    *prog = "amnesia";
  1055. +  
  1056. ++ static int badopt P((char *, int));
  1057. ++ 
  1058. +  /*
  1059. +   * Print message about a bad option.
  1060. +   */
  1061. +diff -rc old/lib/libntp/humandate.c new/lib/libntp/humandate.c
  1062. +*** old/lib/libntp/humandate.c    Mon Aug 10 17:42:49 1998
  1063. +--- new/lib/libntp/humandate.c    Mon Aug 10 17:38:05 1998
  1064. +***************
  1065. +*** 20,25 ****
  1066. +--- 20,27 ----
  1067. +          "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
  1068. +  };
  1069. +  
  1070. ++ char *humanlogtime P((void));
  1071. ++ 
  1072. +  char *
  1073. +  humandate(ntptime)
  1074. +      u_long ntptime;
  1075. +diff -rc old/lib/libntp/lib_strbuf.h new/lib/libntp/lib_strbuf.h
  1076. +*** old/lib/libntp/lib_strbuf.h    Mon Aug 10 17:42:50 1998
  1077. +--- new/lib/libntp/lib_strbuf.h    Mon Aug 10 17:37:23 1998
  1078. +***************
  1079. +*** 25,27 ****
  1080. +--- 25,29 ----
  1081. +  extern char lib_stringbuf[LIB_NUMBUFS][LIB_BUFLENGTH];
  1082. +  extern int lib_nextbuf;
  1083. +  extern int lib_inited;
  1084. ++ 
  1085. ++ void init_lib P((void));
  1086. +diff -rc old/lib/libntp/machines.c new/lib/libntp/machines.c
  1087. +*** old/lib/libntp/machines.c    Mon Aug 10 17:42:50 1998
  1088. +--- new/lib/libntp/machines.c    Mon Aug 10 17:36:25 1998
  1089. +***************
  1090. +*** 112,118 ****
  1091. +  }
  1092. +  #endif /* SYS_PTX */
  1093. +  
  1094. +! #ifdef HAVE_CLOCK_SETTIME
  1095. +  const char *set_tod_using = "clock_settime";
  1096. +  
  1097. +  /*#include <time.h>    */
  1098. +--- 112,118 ----
  1099. +  }
  1100. +  #endif /* SYS_PTX */
  1101. +  
  1102. +! #if defined(HAVE_CLOCK_SETTIME) && defined(CLOCK_REALTIME)
  1103. +  const char *set_tod_using = "clock_settime";
  1104. +  
  1105. +  /*#include <time.h>    */
  1106. +***************
  1107. +*** 131,137 ****
  1108. +    return clock_settime(CLOCK_REALTIME, &ts);
  1109. +  }
  1110. +  
  1111. +! #else /* not HAVE_CLOCK_SETTIME */
  1112. +  # ifdef HAVE_SETTIMEOFDAY
  1113. +  const char *set_tod_using = "settimeofday";
  1114. +  # else /* not (HAVE_SETTIMEOFDAY || HAVE_CLOCK_SETTIME) */
  1115. +--- 131,137 ----
  1116. +    return clock_settime(CLOCK_REALTIME, &ts);
  1117. +  }
  1118. +  
  1119. +! #else /* not HAVE_CLOCK_SETTIME || not CLOCK_REALTIME */
  1120. +  # ifdef HAVE_SETTIMEOFDAY
  1121. +  const char *set_tod_using = "settimeofday";
  1122. +  # else /* not (HAVE_SETTIMEOFDAY || HAVE_CLOCK_SETTIME) */
  1123. +Only in new/lib/libntp: obj.i386
  1124. +diff -rc old/usr.sbin/xntp/Makefile.inc new/usr.sbin/xntp/Makefile.inc
  1125. +*** old/usr.sbin/xntp/Makefile.inc    Mon Aug 10 17:42:55 1998
  1126. +--- new/usr.sbin/xntp/Makefile.inc    Mon Aug 10 15:45:34 1998
  1127. +***************
  1128. +*** 1,5 ****
  1129. +  #    $NetBSD: $
  1130. +! WARNS?=    0
  1131. +  CPPFLAGS += -I${.CURDIR}/../include -DHAVE_CONFIG_H
  1132. +  LDADD += -lntp
  1133. +  DPADD += ${LIBNTP}
  1134. +--- 1,5 ----
  1135. +  #    $NetBSD: $
  1136. +! WARNS?=    1
  1137. +  CPPFLAGS += -I${.CURDIR}/../include -DHAVE_CONFIG_H
  1138. +  LDADD += -lntp
  1139. +  DPADD += ${LIBNTP}
  1140. +diff -rc old/usr.sbin/xntp/include/parse.h new/usr.sbin/xntp/include/parse.h
  1141. +*** old/usr.sbin/xntp/include/parse.h    Mon Aug 10 17:42:52 1998
  1142. +--- new/usr.sbin/xntp/include/parse.h    Mon Aug 10 15:54:23 1998
  1143. +***************
  1144. +*** 335,345 ****
  1145. +  
  1146. +  struct clockformat
  1147. +  {
  1148. +!   u_long    (*input)();    /* special input protocol - implies fixed format */
  1149. +!   u_long        (*convert)();    /* conversion routine */
  1150. +!   void          (*syncevt)();    /* routine for handling RS232 sync events (time stamps) */
  1151. +!   u_long        (*syncpps)();    /* PPS input routine */
  1152. +!   u_long        (*synth)();    /* time code synthesizer */
  1153. +    void           *data;        /* local parameters */
  1154. +    char           *name;        /* clock format name */
  1155. +    unsigned short  length;    /* maximum length of data packet */
  1156. +--- 335,350 ----
  1157. +  
  1158. +  struct clockformat
  1159. +  {
  1160. +!   u_long    (*input)    /* special input protocol - implies fixed format */
  1161. +!     P((parse_t *, unsigned int, timestamp_t *));
  1162. +!   u_long        (*convert)    /* conversion routine */
  1163. +!     P((char *, unsigned int, void *, clocktime_t *, void *));
  1164. +!   void          (*syncevt)    /* routine for handling RS232 sync events (time stamps) */
  1165. +!     P((parse_t *, timestamp_t *, void *, u_long));
  1166. +!   u_long        (*syncpps)    /* PPS input routine */
  1167. +!     P((parse_t *, int, timestamp_t *));
  1168. +!   u_long        (*synth)    /* time code synthesizer */
  1169. +!     P((parse_t *, timestamp_t *));
  1170. +    void           *data;        /* local parameters */
  1171. +    char           *name;        /* clock format name */
  1172. +    unsigned short  length;    /* maximum length of data packet */
  1173. +***************
  1174. +*** 371,377 ****
  1175. +  
  1176. +  extern time_t parse_to_unixtime P((clocktime_t *, u_long *));
  1177. +  extern u_long updatetimeinfo P((parse_t *, time_t, u_long, u_long));
  1178. +! extern void syn_simple P((parse_t *, timestamp_t *, struct format *, u_long));
  1179. +  extern u_long pps_simple P((parse_t *, int, timestamp_t *));
  1180. +  #endif
  1181. +  
  1182. +--- 376,382 ----
  1183. +  
  1184. +  extern time_t parse_to_unixtime P((clocktime_t *, u_long *));
  1185. +  extern u_long updatetimeinfo P((parse_t *, time_t, u_long, u_long));
  1186. +! extern void syn_simple P((parse_t *, timestamp_t *, void *, u_long));
  1187. +  extern u_long pps_simple P((parse_t *, int, timestamp_t *));
  1188. +  #endif
  1189. +  
  1190. +diff -rc old/usr.sbin/xntp/ntpdate/ntpdate.c new/usr.sbin/xntp/ntpdate/ntpdate.c
  1191. +*** old/usr.sbin/xntp/ntpdate/ntpdate.c    Mon Aug 10 17:42:54 1998
  1192. +--- new/usr.sbin/xntp/ntpdate/ntpdate.c    Mon Aug 10 15:49:57 1998
  1193. +***************
  1194. +*** 69,80 ****
  1195. +  #define    NTPDATE_PRIO    (-12)
  1196. +  #else
  1197. +  #define    NTPDATE_PRIO    (100)
  1198. +- #endif
  1199. +- 
  1200. +  #if defined(HAVE_TIMER_SETTIME) || defined (HAVE_TIMER_CREATE)
  1201. +  /* POSIX TIMERS - vxWorks doesn't have itimer - casey */
  1202. +  static timer_t ntpdate_timerid;
  1203. +  #endif
  1204. +  
  1205. +  /*
  1206. +   * Compatibility stuff for Version 2
  1207. +--- 69,80 ----
  1208. +  #define    NTPDATE_PRIO    (-12)
  1209. +  #else
  1210. +  #define    NTPDATE_PRIO    (100)
  1211. +  #if defined(HAVE_TIMER_SETTIME) || defined (HAVE_TIMER_CREATE)
  1212. +  /* POSIX TIMERS - vxWorks doesn't have itimer - casey */
  1213. +  static timer_t ntpdate_timerid;
  1214. +  #endif
  1215. ++ #endif
  1216. ++ 
  1217. +  
  1218. +  /*
  1219. +   * Compatibility stuff for Version 2
  1220. +***************
  1221. +*** 220,225 ****
  1222. +--- 220,228 ----
  1223. +  #endif /* SYS_WINNT */
  1224. +  
  1225. +  #ifdef NO_MAIN_ALLOWED
  1226. ++ void ntpdatemain P((int, char *[]));
  1227. ++ 
  1228. ++ void
  1229. +  CALL(ntpdate,"ntpdate",ntpdatemain);
  1230. +  
  1231. +  void clear_globals()
  1232. +***************
  1233. +*** 280,296 ****
  1234. +    always_step = 0;
  1235. +    never_step = 0;
  1236. +  }
  1237. +  #endif
  1238. +  
  1239. +  /*
  1240. +   * Main program.  Initialize us and loop waiting for I/O and/or
  1241. +   * timer expiries.
  1242. +   */
  1243. +- void
  1244. +  #ifndef NO_MAIN_ALLOWED
  1245. +! main
  1246. +  #else
  1247. +! ntpdatemain
  1248. +  #endif /* NO_MAIN_ALLOWED */
  1249. +  (argc, argv)
  1250. +       int argc;
  1251. +--- 283,300 ----
  1252. +    always_step = 0;
  1253. +    never_step = 0;
  1254. +  }
  1255. ++ #else
  1256. ++ int main P((int, char *[]));
  1257. +  #endif
  1258. +  
  1259. +  /*
  1260. +   * Main program.  Initialize us and loop waiting for I/O and/or
  1261. +   * timer expiries.
  1262. +   */
  1263. +  #ifndef NO_MAIN_ALLOWED
  1264. +! int main
  1265. +  #else
  1266. +! void ntpdatemain
  1267. +  #endif /* NO_MAIN_ALLOWED */
  1268. +  (argc, argv)
  1269. +       int argc;
  1270. +***************
  1271. +*** 332,338 ****
  1272. +    /*
  1273. +     * Decode argument list
  1274. +     */
  1275. +!   while ((c = ntp_getopt(argc, argv, "a:bBde:k:o:p:qr:st:uv")) != EOF)
  1276. +      switch (c)
  1277. +        {
  1278. +        case 'a':
  1279. +--- 336,342 ----
  1280. +    /*
  1281. +     * Decode argument list
  1282. +     */
  1283. +!   while ((c = ntp_getopt(argc, argv, "a:bBde:k:o:p:qr:st:uv")) != -1)
  1284. +      switch (c)
  1285. +        {
  1286. +        case 'a':
  1287. +Only in new/usr.sbin/xntp/ntpdate: obj.i386
  1288. +diff -rc old/usr.sbin/xntp/ntpq/ntpq.c new/usr.sbin/xntp/ntpq/ntpq.c
  1289. +*** old/usr.sbin/xntp/ntpq/ntpq.c    Mon Aug 10 17:42:54 1998
  1290. +--- new/usr.sbin/xntp/ntpq/ntpq.c    Mon Aug 10 15:49:45 1998
  1291. +***************
  1292. +*** 434,439 ****
  1293. +--- 434,440 ----
  1294. +  int debug;
  1295. +  
  1296. +  #ifdef NO_MAIN_ALLOWED
  1297. ++ void ntpqmain P((int, char *[]));
  1298. +  CALL(ntpq,"ntpq",ntpqmain);
  1299. +  
  1300. +  void clear_globals()
  1301. +***************
  1302. +*** 449,465 ****
  1303. +      numcmds = 0;
  1304. +      numhosts = 0;
  1305. +      }
  1306. +  #endif
  1307. +  /*
  1308. +   * main - parse arguments and handle options
  1309. +   */
  1310. +- #if !defined(VMS)
  1311. +- void
  1312. +- #endif /* VMS */
  1313. +  #ifndef NO_MAIN_ALLOWED
  1314. +! main
  1315. +  #else
  1316. +! ntpqmain
  1317. +  #endif
  1318. +  (argc, argv)
  1319. +  int argc;
  1320. +--- 450,465 ----
  1321. +      numcmds = 0;
  1322. +      numhosts = 0;
  1323. +      }
  1324. ++ #else
  1325. ++ int main P((int, char *[]));
  1326. +  #endif
  1327. +  /*
  1328. +   * main - parse arguments and handle options
  1329. +   */
  1330. +  #ifndef NO_MAIN_ALLOWED
  1331. +! int main
  1332. +  #else
  1333. +! void ntpqmain
  1334. +  #endif
  1335. +  (argc, argv)
  1336. +  int argc;
  1337. +***************
  1338. +*** 478,484 ****
  1339. +      delay_time.l_uf = DEFDELAY;
  1340. +  
  1341. +      progname = argv[0];
  1342. +!     while ((c = ntp_getopt(argc, argv, "c:dinp")) != EOF)
  1343. +          switch (c) {
  1344. +          case 'c':
  1345. +              ADDCMD(ntp_optarg);
  1346. +--- 478,484 ----
  1347. +      delay_time.l_uf = DEFDELAY;
  1348. +  
  1349. +      progname = argv[0];
  1350. +!     while ((c = ntp_getopt(argc, argv, "c:dinp")) != -1)
  1351. +          switch (c) {
  1352. +          case 'c':
  1353. +              ADDCMD(ntp_optarg);
  1354. +Only in new/usr.sbin/xntp/ntpq: obj.i386
  1355. +diff -rc old/usr.sbin/xntp/ntptime/ntptime.c new/usr.sbin/xntp/ntptime/ntptime.c
  1356. +*** old/usr.sbin/xntp/ntptime/ntptime.c    Mon Aug 10 17:42:54 1998
  1357. +--- new/usr.sbin/xntp/ntptime/ntptime.c    Mon Aug 10 15:52:15 1998
  1358. +***************
  1359. +*** 20,25 ****
  1360. +--- 20,26 ----
  1361. +  #include <sys/time.h>
  1362. +  #include <signal.h>
  1363. +  #include <errno.h>
  1364. ++ #include <unistd.h>
  1365. +  #include <setjmp.h>
  1366. +  #include "ntp_fp.h"
  1367. +  #include "ntp_unixtime.h"
  1368. +***************
  1369. +*** 75,80 ****
  1370. +--- 76,82 ----
  1371. +  #endif /* NTP_SYSCALLS_LIBC */
  1372. +  char *sprintb        P((u_int, char *));
  1373. +  char *timex_state    P((int));
  1374. ++ int   main        P((int, char *[]));
  1375. +  int debug = 0;
  1376. +  
  1377. +  #ifdef SIGSYS
  1378. +***************
  1379. +*** 90,96 ****
  1380. +  char* progname;
  1381. +  static char optargs[] = "cde:f:hm:o:rs:t:";
  1382. +  
  1383. +! void
  1384. +  main(argc, argv)
  1385. +       int argc;
  1386. +       char *argv[];
  1387. +--- 92,98 ----
  1388. +  char* progname;
  1389. +  static char optargs[] = "cde:f:hm:o:rs:t:";
  1390. +  
  1391. +! int
  1392. +  main(argc, argv)
  1393. +       int argc;
  1394. +       char *argv[];
  1395. +***************
  1396. +*** 108,116 ****
  1397. +    int cost    = 0;
  1398. +    int rawtime    = 0;
  1399. +  
  1400. +    memset((char *)&ntx, 0, sizeof(ntx));
  1401. +    progname = argv[0];
  1402. +!   while ((c = ntp_getopt(argc, argv, optargs)) != EOF) switch (c) {
  1403. +    case 'c':
  1404. +      cost++;
  1405. +      break;
  1406. +--- 110,124 ----
  1407. +    int cost    = 0;
  1408. +    int rawtime    = 0;
  1409. +  
  1410. ++ #ifdef __GNUC__
  1411. ++   /* avoid vfork clobbering */
  1412. ++   (void) &cost;
  1413. ++   (void) &rawtime;
  1414. ++ #endif
  1415. ++ 
  1416. +    memset((char *)&ntx, 0, sizeof(ntx));
  1417. +    progname = argv[0];
  1418. +!   while ((c = ntp_getopt(argc, argv, optargs)) != -1) switch (c) {
  1419. +    case 'c':
  1420. +      cost++;
  1421. +      break;
  1422. +Only in new/usr.sbin/xntp/ntptime: obj.i386
  1423. +diff -rc old/usr.sbin/xntp/ntptrace/ntptrace.c new/usr.sbin/xntp/ntptrace/ntptrace.c
  1424. +*** old/usr.sbin/xntp/ntptrace/ntptrace.c    Mon Aug 10 17:42:55 1998
  1425. +--- new/usr.sbin/xntp/ntptrace/ntptrace.c    Mon Aug 10 15:53:23 1998
  1426. +***************
  1427. +*** 108,120 ****
  1428. +   * timer expiries.
  1429. +   */
  1430. +  #ifdef NO_MAIN_ALLOWED
  1431. +  CALL(ntptrace,"ntptrace",ntptracemain);
  1432. +  #endif
  1433. +! void
  1434. +  #ifndef NO_MAIN_ALLOWED
  1435. +! main
  1436. +  #else
  1437. +! ntptracemain
  1438. +  #endif /* NO_MAIN_ALLOWED */
  1439. +  (argc, argv)
  1440. +      int argc;
  1441. +--- 108,124 ----
  1442. +   * timer expiries.
  1443. +   */
  1444. +  #ifdef NO_MAIN_ALLOWED
  1445. ++ void ntptracemain P((int, char *[]));
  1446. ++ 
  1447. +  CALL(ntptrace,"ntptrace",ntptracemain);
  1448. ++ #else
  1449. ++ int main P((int, char *[]));
  1450. +  #endif
  1451. +! 
  1452. +  #ifndef NO_MAIN_ALLOWED
  1453. +! int main
  1454. +  #else
  1455. +! void ntptracemain
  1456. +  #endif /* NO_MAIN_ALLOWED */
  1457. +  (argc, argv)
  1458. +      int argc;
  1459. +***************
  1460. +*** 138,144 ****
  1461. +      /*
  1462. +       * Decode argument list
  1463. +       */
  1464. +!     while ((c = ntp_getopt(argc, argv, "do:nr:t:v")) != EOF)
  1465. +          switch (c) {
  1466. +          case 'd':
  1467. +              ++debug;
  1468. +--- 142,148 ----
  1469. +      /*
  1470. +       * Decode argument list
  1471. +       */
  1472. +!     while ((c = ntp_getopt(argc, argv, "do:nr:t:v")) != -1)
  1473. +          switch (c) {
  1474. +          case 'd':
  1475. +              ++debug;
  1476. +Only in new/usr.sbin/xntp/ntptrace: obj.i386
  1477. +diff -rc old/usr.sbin/xntp/xntpd/clk_computime.c new/usr.sbin/xntp/xntpd/clk_computime.c
  1478. +*** old/usr.sbin/xntp/xntpd/clk_computime.c    Mon Aug 10 17:42:54 1998
  1479. +--- new/usr.sbin/xntp/xntpd/clk_computime.c    Mon Aug 10 17:20:31 1998
  1480. +***************
  1481. +*** 63,77 ****
  1482. +      0
  1483. +  };
  1484. +  
  1485. +! static u_long   cvt_computime();
  1486. +  
  1487. +  clockformat_t   clock_computime =
  1488. +  {
  1489. +!     (unsigned long (*) ()) 0,    /* no input handling */
  1490. +      cvt_computime,            /* Computime conversion */
  1491. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1492. +!     (u_long (*)())0,        /* no PPS monitoring */
  1493. +!     (u_long(*) ())0,        /* no time code synthesizer monitoring */
  1494. +      (void *)&computime_fmt,        /* conversion configuration */
  1495. +      "Diem's Computime Radio Clock",    /* Computime Radio Clock */
  1496. +      24,                /* string buffer */
  1497. +--- 63,77 ----
  1498. +      0
  1499. +  };
  1500. +  
  1501. +! static u_long cvt_computime P((char *, unsigned int, void *, clocktime_t *, void *));
  1502. +  
  1503. +  clockformat_t   clock_computime =
  1504. +  {
  1505. +!     NULL,                /* no input handling */
  1506. +      cvt_computime,            /* Computime conversion */
  1507. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1508. +!     NULL,                /* no PPS monitoring */
  1509. +!     NULL,                /* no time code synthesizer monitoring */
  1510. +      (void *)&computime_fmt,        /* conversion configuration */
  1511. +      "Diem's Computime Radio Clock",    /* Computime Radio Clock */
  1512. +      24,                /* string buffer */
  1513. +***************
  1514. +*** 89,100 ****
  1515. +   * convert simple type format
  1516. +   */
  1517. +  static          u_long
  1518. +! cvt_computime(buffer, size, format, clock)
  1519. +      register char  *buffer;
  1520. +!     register int    size;
  1521. +!     register struct format *format;
  1522. +      register clocktime_t *clock;
  1523. +  {
  1524. +  
  1525. +      if (!Strok(buffer, format->fixed_string)) { 
  1526. +          return CVT_NONE;
  1527. +--- 89,102 ----
  1528. +   * convert simple type format
  1529. +   */
  1530. +  static          u_long
  1531. +! cvt_computime(buffer, size, vf, clock, vt)
  1532. +      register char  *buffer;
  1533. +!     register unsigned int    size;
  1534. +!     register void  *vf;
  1535. +      register clocktime_t *clock;
  1536. ++     register void  *vt;
  1537. +  {
  1538. ++     register struct format *format = vf;
  1539. +  
  1540. +      if (!Strok(buffer, format->fixed_string)) { 
  1541. +          return CVT_NONE;
  1542. +diff -rc old/usr.sbin/xntp/xntpd/clk_dcf7000.c new/usr.sbin/xntp/xntpd/clk_dcf7000.c
  1543. +*** old/usr.sbin/xntp/xntpd/clk_dcf7000.c    Mon Aug 10 17:42:54 1998
  1544. +--- new/usr.sbin/xntp/xntpd/clk_dcf7000.c    Mon Aug 10 17:20:06 1998
  1545. +***************
  1546. +*** 40,54 ****
  1547. +    0
  1548. +  };    
  1549. +  
  1550. +! static u_long cvt_dcf7000();
  1551. +  
  1552. +  clockformat_t clock_dcf7000 =
  1553. +  {
  1554. +!   (unsigned long (*)())0,    /* no input handling */
  1555. +    cvt_dcf7000,            /* ELV DCF77 conversion */
  1556. +    syn_simple,            /* easy time stamps */
  1557. +!   (u_long (*)())0,        /* no direct PPS monitoring */
  1558. +!   (u_long (*)())0,        /* no time code synthesizer monitoring */
  1559. +    (void *)&dcf7000_fmt,        /* conversion configuration */
  1560. +    "ELV DCF7000",        /* ELV clock */
  1561. +    24,                /* string buffer */
  1562. +--- 40,54 ----
  1563. +    0
  1564. +  };    
  1565. +  
  1566. +! static u_long cvt_dcf7000 P((char *, unsigned int, void *, clocktime_t *, void *));
  1567. +  
  1568. +  clockformat_t clock_dcf7000 =
  1569. +  {
  1570. +!   NULL,                /* no input handling */
  1571. +    cvt_dcf7000,            /* ELV DCF77 conversion */
  1572. +    syn_simple,            /* easy time stamps */
  1573. +!   NULL,                /* no direct PPS monitoring */
  1574. +!   NULL,                /* no time code synthesizer monitoring */
  1575. +    (void *)&dcf7000_fmt,        /* conversion configuration */
  1576. +    "ELV DCF7000",        /* ELV clock */
  1577. +    24,                /* string buffer */
  1578. +***************
  1579. +*** 66,77 ****
  1580. +   * convert dcf7000 type format
  1581. +   */
  1582. +  static u_long
  1583. +! cvt_dcf7000(buffer, size, format, clock)
  1584. +    register char          *buffer;
  1585. +!   register int            size;
  1586. +!   register struct format *format;
  1587. +    register clocktime_t   *clock;
  1588. +  {
  1589. +    if (!Strok(buffer, format->fixed_string))
  1590. +      {
  1591. +        return CVT_NONE;
  1592. +--- 66,79 ----
  1593. +   * convert dcf7000 type format
  1594. +   */
  1595. +  static u_long
  1596. +! cvt_dcf7000(buffer, size, vf, clock, vt)
  1597. +    register char          *buffer;
  1598. +!   register unsigned int   size;
  1599. +!   register void          *vf;
  1600. +    register clocktime_t   *clock;
  1601. ++   register void          *vt;
  1602. +  {
  1603. ++   register struct format *format = vf;
  1604. +    if (!Strok(buffer, format->fixed_string))
  1605. +      {
  1606. +        return CVT_NONE;
  1607. +diff -rc old/usr.sbin/xntp/xntpd/clk_hopf6021.c new/usr.sbin/xntp/xntpd/clk_hopf6021.c
  1608. +*** old/usr.sbin/xntp/xntpd/clk_hopf6021.c    Mon Aug 10 17:42:54 1998
  1609. +--- new/usr.sbin/xntp/xntpd/clk_hopf6021.c    Mon Aug 10 17:19:50 1998
  1610. +***************
  1611. +*** 113,127 ****
  1612. +      ('A' <= (x) && (x) <= 'F') ? (x) - 'A' + 10 : \
  1613. +      -1)
  1614. +              
  1615. +! static unsigned long cvt_hopf6021();
  1616. +  
  1617. +  clockformat_t clock_hopf6021 =
  1618. +  {
  1619. +!   (unsigned long (*)())0,       /* no input handling */
  1620. +    cvt_hopf6021,                 /* Radiocode clock conversion */
  1621. +    syn_simple,                   /* easy time stamps for RS232 (fallback) */
  1622. +!   (unsigned long (*)())0,       /* no direct PPS monitoring */
  1623. +!   (unsigned long (*)())0,       /* no time code synthesizer monitoring */
  1624. +    (void *)&hopf6021_fmt,        /* conversion configuration */
  1625. +    "hopf Funkuhr 6021",          /* clock format name */
  1626. +    19,                           /* string buffer */
  1627. +--- 113,128 ----
  1628. +      ('A' <= (x) && (x) <= 'F') ? (x) - 'A' + 10 : \
  1629. +      -1)
  1630. +              
  1631. +! 
  1632. +! static u_long cvt_hopf6021 P((char *, unsigned int, void *, clocktime_t *, void *));
  1633. +  
  1634. +  clockformat_t clock_hopf6021 =
  1635. +  {
  1636. +!   NULL,                /* no input handling */
  1637. +    cvt_hopf6021,                 /* Radiocode clock conversion */
  1638. +    syn_simple,                   /* easy time stamps for RS232 (fallback) */
  1639. +!   NULL,                 /* no direct PPS monitoring */
  1640. +!   NULL,             /* no time code synthesizer monitoring */
  1641. +    (void *)&hopf6021_fmt,        /* conversion configuration */
  1642. +    "hopf Funkuhr 6021",          /* clock format name */
  1643. +    19,                           /* string buffer */
  1644. +***************
  1645. +*** 133,146 ****
  1646. +    0                             /* sync symbol */
  1647. +  };
  1648. +  
  1649. +! static unsigned long
  1650. +! cvt_hopf6021(buffer, size, format, clock)
  1651. +      register char          *buffer;
  1652. +!     register int            size;
  1653. +!     register struct format *format;
  1654. +      register clocktime_t   *clock;
  1655. +  {
  1656. +!     char status,weekday;
  1657. +  
  1658. +      if (!Strok(buffer, format->fixed_string))
  1659. +      {
  1660. +--- 134,149 ----
  1661. +    0                             /* sync symbol */
  1662. +  };
  1663. +  
  1664. +! static u_long
  1665. +! cvt_hopf6021(buffer, size, vf, clock, vt)
  1666. +      register char          *buffer;
  1667. +!     register unsigned int   size;
  1668. +!     register void          *vf;
  1669. +      register clocktime_t   *clock;
  1670. ++     register void          *vt;
  1671. +  {
  1672. +!     register struct format *format = vf;
  1673. +!     int status,weekday;
  1674. +  
  1675. +      if (!Strok(buffer, format->fixed_string))
  1676. +      {
  1677. +diff -rc old/usr.sbin/xntp/xntpd/clk_meinberg.c new/usr.sbin/xntp/xntpd/clk_meinberg.c
  1678. +*** old/usr.sbin/xntp/xntpd/clk_meinberg.c    Mon Aug 10 17:42:54 1998
  1679. +--- new/usr.sbin/xntp/xntpd/clk_meinberg.c    Mon Aug 10 17:19:33 1998
  1680. +***************
  1681. +*** 142,158 ****
  1682. +    }
  1683. +  };
  1684. +  
  1685. +! static u_long cvt_meinberg();
  1686. +! static u_long cvt_mgps();
  1687. +  
  1688. +  clockformat_t clock_meinberg[] =
  1689. +  {
  1690. +    {
  1691. +!     (unsigned long (*)())0,    /* no input handling */
  1692. +      cvt_meinberg,        /* Meinberg conversion */
  1693. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1694. +      pps_simple,            /* easy PPS monitoring */
  1695. +!     (u_long (*)())0,        /* no time code synthesizer monitoring */
  1696. +      (void *)&meinberg_fmt[0],    /* conversion configuration */
  1697. +      "Meinberg Standard",    /* Meinberg simple format - beware */
  1698. +      32,                /* string buffer */
  1699. +--- 142,159 ----
  1700. +    }
  1701. +  };
  1702. +  
  1703. +! 
  1704. +! static u_long cvt_meinberg P((char *, unsigned int, void *, clocktime_t *, void *));
  1705. +! static u_long cvt_mgps P((char *, unsigned int, void *, clocktime_t *, void *));
  1706. +  
  1707. +  clockformat_t clock_meinberg[] =
  1708. +  {
  1709. +    {
  1710. +!     NULL,            /* no input handling */
  1711. +      cvt_meinberg,        /* Meinberg conversion */
  1712. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1713. +      pps_simple,            /* easy PPS monitoring */
  1714. +!     NULL,            /* no time code synthesizer monitoring */
  1715. +      (void *)&meinberg_fmt[0],    /* conversion configuration */
  1716. +      "Meinberg Standard",    /* Meinberg simple format - beware */
  1717. +      32,                /* string buffer */
  1718. +***************
  1719. +*** 164,174 ****
  1720. +      '\0'
  1721. +    },
  1722. +    {
  1723. +!     (unsigned long (*)())0,    /* no input handling */
  1724. +      cvt_meinberg,        /* Meinberg conversion */
  1725. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1726. +      pps_simple,            /* easy PPS monitoring */
  1727. +!     (u_long (*)())0,        /* no time code synthesizer monitoring */
  1728. +      (void *)&meinberg_fmt[1],    /* conversion configuration */
  1729. +      "Meinberg Extended",    /* Meinberg enhanced format */
  1730. +      32,                /* string buffer */
  1731. +--- 165,175 ----
  1732. +      '\0'
  1733. +    },
  1734. +    {
  1735. +!     NULL,            /* no input handling */
  1736. +      cvt_meinberg,        /* Meinberg conversion */
  1737. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1738. +      pps_simple,            /* easy PPS monitoring */
  1739. +!     NULL,            /* no time code synthesizer monitoring */
  1740. +      (void *)&meinberg_fmt[1],    /* conversion configuration */
  1741. +      "Meinberg Extended",    /* Meinberg enhanced format */
  1742. +      32,                /* string buffer */
  1743. +***************
  1744. +*** 180,190 ****
  1745. +      '\0'
  1746. +    },
  1747. +    {
  1748. +!     (unsigned long (*)())0,    /* no input handling */
  1749. +      cvt_mgps,            /* Meinberg GPS166 conversion */
  1750. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1751. +      pps_simple,            /* easy PPS monitoring */
  1752. +!     (u_long (*)())0,        /* no time code synthesizer monitoring */
  1753. +      (void *)&meinberg_fmt[2],    /* conversion configuration */
  1754. +      "Meinberg GPS Extended",    /* Meinberg FAU GPS format */
  1755. +      70,                /* string buffer */
  1756. +--- 181,191 ----
  1757. +      '\0'
  1758. +    },
  1759. +    {
  1760. +!     NULL,            /* no input handling */
  1761. +      cvt_mgps,            /* Meinberg GPS166 conversion */
  1762. +      syn_simple,            /* easy time stamps for RS232 (fallback) */
  1763. +      pps_simple,            /* easy PPS monitoring */
  1764. +!     NULL,            /* no time code synthesizer monitoring */
  1765. +      (void *)&meinberg_fmt[2],    /* conversion configuration */
  1766. +      "Meinberg GPS Extended",    /* Meinberg FAU GPS format */
  1767. +      70,                /* string buffer */
  1768. +***************
  1769. +*** 203,214 ****
  1770. +   * convert simple type format
  1771. +   */
  1772. +  static u_long
  1773. +! cvt_meinberg(buffer, size, format, clock)
  1774. +    register char          *buffer;
  1775. +!   register int            size;
  1776. +!   register struct format *format;
  1777. +    register clocktime_t   *clock;
  1778. +  {
  1779. +    if (!Strok(buffer, format->fixed_string))
  1780. +      {
  1781. +        return CVT_NONE;
  1782. +--- 204,217 ----
  1783. +   * convert simple type format
  1784. +   */
  1785. +  static u_long
  1786. +! cvt_meinberg(buffer, size, vf, clock, vt)
  1787. +    register char          *buffer;
  1788. +!   register unsigned int   size;
  1789. +!   register void          *vf;
  1790. +    register clocktime_t   *clock;
  1791. ++   register void          *vt;
  1792. +  {
  1793. ++   register struct format *format = vf;
  1794. +    if (!Strok(buffer, format->fixed_string))
  1795. +      {
  1796. +        return CVT_NONE;
  1797. +***************
  1798. +*** 332,343 ****
  1799. +   * convert Meinberg GPS format
  1800. +   */
  1801. +  static u_long
  1802. +! cvt_mgps(buffer, size, format, clock)
  1803. +    register char          *buffer;
  1804. +!   register int            size;
  1805. +!   register struct format *format;
  1806. +    register clocktime_t   *clock;
  1807. +  {
  1808. +    if (!Strok(buffer, format->fixed_string))
  1809. +      {
  1810. +        return CVT_NONE;
  1811. +--- 335,348 ----
  1812. +   * convert Meinberg GPS format
  1813. +   */
  1814. +  static u_long
  1815. +! cvt_mgps(buffer, size, vf, clock, vt)
  1816. +    register char          *buffer;
  1817. +!   register unsigned int   size;
  1818. +!   register void          *vf;
  1819. +    register clocktime_t   *clock;
  1820. ++   register void          *vt;
  1821. +  {
  1822. ++   register struct format *format = vf;
  1823. +    if (!Strok(buffer, format->fixed_string))
  1824. +      {
  1825. +        return CVT_NONE;
  1826. +diff -rc old/usr.sbin/xntp/xntpd/clk_rawdcf.c new/usr.sbin/xntp/xntpd/clk_rawdcf.c
  1827. +*** old/usr.sbin/xntp/xntpd/clk_rawdcf.c    Mon Aug 10 17:42:54 1998
  1828. +--- new/usr.sbin/xntp/xntpd/clk_rawdcf.c    Mon Aug 10 17:19:12 1998
  1829. +***************
  1830. +*** 84,98 ****
  1831. +   * 59              - usually missing (minute indication), except for leap insertion
  1832. +   */
  1833. +  
  1834. +! static u_long cvt_rawdcf();
  1835. +! static u_long pps_rawdcf();
  1836. +! static u_long snt_rawdcf();
  1837. +  
  1838. +  clockformat_t clock_rawdcf =
  1839. +  {
  1840. +!   (unsigned long (*)())0,    /* no input handling */
  1841. +    cvt_rawdcf,            /* raw dcf input conversion */
  1842. +!   (void (*)())0,        /* no character bound synchronisation */
  1843. +    pps_rawdcf,            /* examining PPS information */
  1844. +    snt_rawdcf,            /* synthesize time code from input */
  1845. +    (void *)0,            /* buffer bit representation */
  1846. +--- 84,103 ----
  1847. +   * 59              - usually missing (minute indication), except for leap insertion
  1848. +   */
  1849. +  
  1850. +! /* clk_rawdcf.c */
  1851. +! static u_long ext_bf P((char *, int, char *));
  1852. +! static unsigned pcheck P((char *, int, char *));
  1853. +! struct dcfparam;
  1854. +! static u_long convert_rawdcf P((unsigned char *, int, struct dcfparam *, clocktime_t *));
  1855. +! static u_long cvt_rawdcf P((char *, unsigned int, void *, clocktime_t *, void *));
  1856. +! static u_long pps_rawdcf P((parse_t *, int, timestamp_t *));
  1857. +! static u_long snt_rawdcf P((parse_t *, timestamp_t *));
  1858. +  
  1859. +  clockformat_t clock_rawdcf =
  1860. +  {
  1861. +!   NULL,                /* no input handling */
  1862. +    cvt_rawdcf,            /* raw dcf input conversion */
  1863. +!   NULL,                /* no character bound synchronisation */
  1864. +    pps_rawdcf,            /* examining PPS information */
  1865. +    snt_rawdcf,            /* synthesize time code from input */
  1866. +    (void *)0,            /* buffer bit representation */
  1867. +***************
  1868. +*** 314,325 ****
  1869. +   * raw dcf input routine - needs to fix up 50 baud
  1870. +   * characters for 1/0 decision
  1871. +   */
  1872. +! static u_long cvt_rawdcf(buffer, size, param, clock)
  1873. +!   register unsigned char   *buffer;
  1874. +!   register int              size;
  1875. +!   register void            *param;
  1876. +    register clocktime_t     *clock;
  1877. +  {
  1878. +    register unsigned char *s = buffer;
  1879. +    register unsigned char *e = buffer + size;
  1880. +    register unsigned char *b = dcfparam.onebits;
  1881. +--- 319,332 ----
  1882. +   * raw dcf input routine - needs to fix up 50 baud
  1883. +   * characters for 1/0 decision
  1884. +   */
  1885. +! static u_long cvt_rawdcf(bp, size, vf, clock, vt)
  1886. +!   register char          *bp;
  1887. +!   register unsigned int     size;
  1888. +!   register void            *vf;
  1889. +    register clocktime_t     *clock;
  1890. ++   register void            *vt;
  1891. +  {
  1892. ++   register unsigned char *buffer = (unsigned char *) bp;
  1893. +    register unsigned char *s = buffer;
  1894. +    register unsigned char *e = buffer + size;
  1895. +    register unsigned char *b = dcfparam.onebits;
  1896. +***************
  1897. +*** 366,372 ****
  1898. +      }
  1899. +        else
  1900. +      {
  1901. +!       parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: character check for 0x%x@%d FAILED\n", *s, s - buffer));
  1902. +        *s = ~0;
  1903. +        rtc = CVT_FAIL|CVT_BADFMT;
  1904. +      }
  1905. +--- 373,379 ----
  1906. +      }
  1907. +        else
  1908. +      {
  1909. +!       parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: character check for 0x%x@%ld FAILED\n", *s, (long)(s - buffer)));
  1910. +        *s = ~0;
  1911. +        rtc = CVT_FAIL|CVT_BADFMT;
  1912. +      }
  1913. +diff -rc old/usr.sbin/xntp/xntpd/clk_rcc8000.c new/usr.sbin/xntp/xntpd/clk_rcc8000.c
  1914. +*** old/usr.sbin/xntp/xntpd/clk_rcc8000.c    Mon Aug 10 17:42:54 1998
  1915. +--- new/usr.sbin/xntp/xntpd/clk_rcc8000.c    Mon Aug 10 17:18:50 1998
  1916. +***************
  1917. +*** 52,66 ****
  1918. +    0 
  1919. +  };
  1920. +  
  1921. +! static unsigned long cvt_rcc8000();
  1922. +  
  1923. +  clockformat_t clock_rcc8000 =
  1924. +  {
  1925. +!   (unsigned long (*)())0,       /* no input handling */
  1926. +!   cvt_rcc8000,        /* Radiocode clock conversion */
  1927. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  1928. +!   (unsigned long (*)())0,       /* no direct PPS monitoring */
  1929. +!   (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  1930. +    (void *)&rcc8000_fmt,        /* conversion configuration */
  1931. +    "Radiocode RCC8000",
  1932. +    31,                /* string buffer */
  1933. +--- 52,66 ----
  1934. +    0 
  1935. +  };
  1936. +  
  1937. +! static u_long cvt_rcc8000 P((char *, unsigned int, void *, clocktime_t *, void *));
  1938. +  
  1939. +  clockformat_t clock_rcc8000 =
  1940. +  {
  1941. +!   NULL,                /* no input handling */
  1942. +!   cvt_rcc8000,            /* Radiocode clock conversion */
  1943. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  1944. +!   NULL,                /* no direct PPS monitoring */
  1945. +!   NULL,                /* no time code synthesizer monitoring */
  1946. +    (void *)&rcc8000_fmt,        /* conversion configuration */
  1947. +    "Radiocode RCC8000",
  1948. +    31,                /* string buffer */
  1949. +***************
  1950. +*** 73,84 ****
  1951. +  };
  1952. +  
  1953. +  static unsigned long
  1954. +! cvt_rcc8000(buffer, size, format, clock)
  1955. +    register char          *buffer;
  1956. +!   register int            size;
  1957. +!   register struct format *format;
  1958. +    register clocktime_t   *clock;
  1959. +  {
  1960. +    if (!Strok(buffer, format->fixed_string)) return CVT_NONE;
  1961. +  #define    OFFS(x) format->field_offsets[(x)].offset
  1962. +  #define STOI(x, y) Stoi(&buffer[OFFS(x)], y, format->field_offsets[(x)].length)
  1963. +--- 73,86 ----
  1964. +  };
  1965. +  
  1966. +  static unsigned long
  1967. +! cvt_rcc8000(buffer, size, vf, clock, vt)
  1968. +    register char          *buffer;
  1969. +!   register unsigned int   size;
  1970. +!   register void          *vf;
  1971. +    register clocktime_t   *clock;
  1972. ++   register void          *vt;
  1973. +  {
  1974. ++   register struct format *format = vf;
  1975. +    if (!Strok(buffer, format->fixed_string)) return CVT_NONE;
  1976. +  #define    OFFS(x) format->field_offsets[(x)].offset
  1977. +  #define STOI(x, y) Stoi(&buffer[OFFS(x)], y, format->field_offsets[(x)].length)
  1978. +diff -rc old/usr.sbin/xntp/xntpd/clk_schmid.c new/usr.sbin/xntp/xntpd/clk_schmid.c
  1979. +*** old/usr.sbin/xntp/xntpd/clk_schmid.c    Mon Aug 10 17:42:54 1998
  1980. +--- new/usr.sbin/xntp/xntpd/clk_schmid.c    Mon Aug 10 17:18:28 1998
  1981. +***************
  1982. +*** 63,77 ****
  1983. +  #define   WS_MEST    0x04
  1984. +  #define WS_LEAP        0x10
  1985. +  
  1986. +! static u_long cvt_schmid();
  1987. +  
  1988. +  clockformat_t clock_schmid =
  1989. +  {
  1990. +!   (unsigned long (*)())0,    /* no input handling */
  1991. +    cvt_schmid,            /* Schmid conversion */
  1992. +    syn_simple,            /* easy time stamps */
  1993. +!   (u_long (*)())0,        /* not direct PPS monitoring */
  1994. +!   (u_long (*)())0,        /* no time code synthesizer monitoring */
  1995. +    (void *)0,            /* conversion configuration */
  1996. +    "Schmid",            /* Schmid receiver */
  1997. +    12,                /* binary data buffer */
  1998. +--- 63,77 ----
  1999. +  #define   WS_MEST    0x04
  2000. +  #define WS_LEAP        0x10
  2001. +  
  2002. +! static u_long cvt_schmid P((char *, unsigned int, void *, clocktime_t *, void *));
  2003. +  
  2004. +  clockformat_t clock_schmid =
  2005. +  {
  2006. +!   NULL,                /* no input handling */
  2007. +    cvt_schmid,            /* Schmid conversion */
  2008. +    syn_simple,            /* easy time stamps */
  2009. +!   NULL,                /* not direct PPS monitoring */
  2010. +!   NULL,                /* no time code synthesizer monitoring */
  2011. +    (void *)0,            /* conversion configuration */
  2012. +    "Schmid",            /* Schmid receiver */
  2013. +    12,                /* binary data buffer */
  2014. +***************
  2015. +*** 85,96 ****
  2016. +  
  2017. +  
  2018. +  static u_long
  2019. +! cvt_schmid(buffer, size, format, clock)
  2020. +!   register unsigned char *buffer;
  2021. +!   register int            size;
  2022. +!   register struct format *format;
  2023. +    register clocktime_t   *clock;
  2024. +  {
  2025. +    if ((size != 11) || (buffer[10] != (unsigned char)'\375'))
  2026. +      {
  2027. +        return CVT_NONE;
  2028. +--- 85,98 ----
  2029. +  
  2030. +  
  2031. +  static u_long
  2032. +! cvt_schmid(bp, size, vf, clock, vt)
  2033. +!   register char      *bp;
  2034. +!   register unsigned int   size;
  2035. +!   register void      *vf;
  2036. +    register clocktime_t   *clock;
  2037. ++   register void      *vt;
  2038. +  {
  2039. ++   register unsigned char *buffer = (unsigned char *) bp;
  2040. +    if ((size != 11) || (buffer[10] != (unsigned char)'\375'))
  2041. +      {
  2042. +        return CVT_NONE;
  2043. +diff -rc old/usr.sbin/xntp/xntpd/clk_trimtaip.c new/usr.sbin/xntp/xntpd/clk_trimtaip.c
  2044. +*** old/usr.sbin/xntp/xntpd/clk_trimtaip.c    Mon Aug 10 17:42:54 1998
  2045. +--- new/usr.sbin/xntp/xntpd/clk_trimtaip.c    Mon Aug 10 17:18:04 1998
  2046. +***************
  2047. +*** 43,57 ****
  2048. +    0
  2049. +  };
  2050. +  
  2051. +! static unsigned long cvt_trimtaip();
  2052. +  
  2053. +  clockformat_t clock_trimtaip =
  2054. +  {
  2055. +!   (unsigned long (*)())0,    /* no input handling */
  2056. +    cvt_trimtaip,            /* Trimble conversion */
  2057. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  2058. +    pps_simple,            /* easy PPS monitoring */
  2059. +!   (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  2060. +    (void *)&trimsv6_fmt,        /* conversion configuration */
  2061. +    "Trimble SV6/TAIP",
  2062. +    37,                /* string buffer */
  2063. +--- 43,60 ----
  2064. +    0
  2065. +  };
  2066. +  
  2067. +! 
  2068. +! 
  2069. +! /* clk_trimtaip.c */
  2070. +! static u_long cvt_trimtaip P((char *, unsigned int, void *, clocktime_t *, void *));
  2071. +  
  2072. +  clockformat_t clock_trimtaip =
  2073. +  {
  2074. +!   NULL,                /* no input handling */
  2075. +    cvt_trimtaip,            /* Trimble conversion */
  2076. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  2077. +    pps_simple,            /* easy PPS monitoring */
  2078. +!   NULL,                /* no time code synthesizer monitoring */
  2079. +    (void *)&trimsv6_fmt,        /* conversion configuration */
  2080. +    "Trimble SV6/TAIP",
  2081. +    37,                /* string buffer */
  2082. +***************
  2083. +*** 63,75 ****
  2084. +    '\0'
  2085. +  };
  2086. +  
  2087. +! static unsigned long
  2088. +! cvt_trimtaip(buffer, size, format, clock)
  2089. +    register char          *buffer;
  2090. +!   register int            size;
  2091. +!   register struct format *format;
  2092. +    register clocktime_t   *clock;
  2093. +  {
  2094. +    long gpsfix;
  2095. +    u_char calc_csum = 0;
  2096. +    long   recv_csum;
  2097. +--- 66,80 ----
  2098. +    '\0'
  2099. +  };
  2100. +  
  2101. +! static u_long
  2102. +! cvt_trimtaip(buffer, size, vf, clock, vt)
  2103. +    register char          *buffer;
  2104. +!   register unsigned int   size;
  2105. +!   register void         *vf;
  2106. +    register clocktime_t   *clock;
  2107. ++   register void         *vt;
  2108. +  {
  2109. ++   register struct format *format = vf;
  2110. +    long gpsfix;
  2111. +    u_char calc_csum = 0;
  2112. +    long   recv_csum;
  2113. +diff -rc old/usr.sbin/xntp/xntpd/clk_trimtsip.c new/usr.sbin/xntp/xntpd/clk_trimtsip.c
  2114. +*** old/usr.sbin/xntp/xntpd/clk_trimtsip.c    Mon Aug 10 17:42:54 1998
  2115. +--- new/usr.sbin/xntp/xntpd/clk_trimtsip.c    Mon Aug 10 17:17:37 1998
  2116. +***************
  2117. +*** 104,111 ****
  2118. +    u_char  t_leap;        /* possible leap warning */
  2119. +  };
  2120. +  
  2121. +! static unsigned long inp_tsip();
  2122. +! static unsigned long cvt_trimtsip();
  2123. +  
  2124. +  struct clockformat clock_trimtsip =
  2125. +  {
  2126. +--- 104,114 ----
  2127. +    u_char  t_leap;        /* possible leap warning */
  2128. +  };
  2129. +  
  2130. +! static u_long inp_tsip P((parse_t *, unsigned int, timestamp_t *));
  2131. +! static u_long cvt_trimtsip P((char *, unsigned int, void *, clocktime_t *, void *));
  2132. +! static float getflt P((u_char *));
  2133. +! static double getdbl P((u_char *));
  2134. +! static int getint P((u_char *));
  2135. +  
  2136. +  struct clockformat clock_trimtsip =
  2137. +  {
  2138. +***************
  2139. +*** 113,120 ****
  2140. +    cvt_trimtsip,            /* Trimble TSIP conversion */
  2141. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  2142. +    pps_simple,            /* easy PPS monitoring */
  2143. +!   (unsigned long (*)())0,    /* no time code synthesizer monitoring */
  2144. +!   (void *)0,            /* no configuration data */
  2145. +    "Trimble SV6/TSIP",
  2146. +    128,                /* input buffer */
  2147. +    CVT_FIXEDONLY,                /* we do our own input handling */
  2148. +--- 116,123 ----
  2149. +    cvt_trimtsip,            /* Trimble TSIP conversion */
  2150. +    syn_simple,            /* easy time stamps for RS232 (fallback) */
  2151. +    pps_simple,            /* easy PPS monitoring */
  2152. +!   NULL,                /* no time code synthesizer monitoring */
  2153. +!   NULL,                /* no configuration data */
  2154. +    "Trimble SV6/TSIP",
  2155. +    128,                /* input buffer */
  2156. +    CVT_FIXEDONLY,                /* we do our own input handling */
  2157. +***************
  2158. +*** 131,139 ****
  2159. +  #define DLE        0x10
  2160. +  #define ETX        0x03
  2161. +  
  2162. +  static unsigned long inp_tsip(parseio, ch, ctime)
  2163. +       register parse_t      *parseio;
  2164. +!      register unsigned char ch;
  2165. +       register timestamp_t  *ctime;
  2166. +  {
  2167. +    register struct trimble *t = (struct trimble *)parseio->parse_pdata;
  2168. +--- 134,143 ----
  2169. +  #define DLE        0x10
  2170. +  #define ETX        0x03
  2171. +  
  2172. ++ 
  2173. +  static unsigned long inp_tsip(parseio, ch, ctime)
  2174. +       register parse_t      *parseio;
  2175. +!      register unsigned int ch;
  2176. +       register timestamp_t  *ctime;
  2177. +  {
  2178. +    register struct trimble *t = (struct trimble *)parseio->parse_pdata;
  2179. +***************
  2180. +*** 213,225 ****
  2181. +   * convert TSIP type format
  2182. +   */
  2183. +  static unsigned long
  2184. +! cvt_trimtsip(buffer, size, format, clock, t)
  2185. +    register char          *buffer;
  2186. +!   register int            size;
  2187. +!   register struct format *format;
  2188. +    register clocktime_t   *clock;
  2189. +!   register struct trimble *t;
  2190. +  {
  2191. +  #define mb(_X_) (buffer[2+(_X_)]) /* shortcut for buffer access */
  2192. +    register u_char cmd;
  2193. +  
  2194. +--- 217,230 ----
  2195. +   * convert TSIP type format
  2196. +   */
  2197. +  static unsigned long
  2198. +! cvt_trimtsip(buffer, size, vf, clock, vt)
  2199. +    register char          *buffer;
  2200. +!   register unsigned int   size;
  2201. +!   register void         *vf;
  2202. +    register clocktime_t   *clock;
  2203. +!   register void         *vt;
  2204. +  {
  2205. ++   register struct trimble *t = vt;
  2206. +  #define mb(_X_) (buffer[2+(_X_)]) /* shortcut for buffer access */
  2207. +    register u_char cmd;
  2208. +  
  2209. +diff -rc old/usr.sbin/xntp/xntpd/ntp_config.c new/usr.sbin/xntp/xntpd/ntp_config.c
  2210. +*** old/usr.sbin/xntp/xntpd/ntp_config.c    Mon Aug 10 17:42:52 1998
  2211. +--- new/usr.sbin/xntp/xntpd/ntp_config.c    Mon Aug 10 17:25:57 1998
  2212. +***************
  2213. +*** 484,490 ****
  2214. +      /*
  2215. +       * Decode argument list
  2216. +       */
  2217. +!     while ((c = ntp_getopt(argc, argv, xntp_options)) != EOF)
  2218. +          switch (c) {
  2219. +  #ifdef DEBUG
  2220. +          case 'd':
  2221. +--- 484,490 ----
  2222. +      /*
  2223. +       * Decode argument list
  2224. +       */
  2225. +!     while ((c = ntp_getopt(argc, argv, xntp_options)) != -1)
  2226. +          switch (c) {
  2227. +  #ifdef DEBUG
  2228. +          case 'd':
  2229. +***************
  2230. +*** 646,652 ****
  2231. +      /*
  2232. +       * Decode argument list
  2233. +       */
  2234. +!     while ((c = ntp_getopt(argc, argv, xntp_options)) != EOF) {
  2235. +          switch (c) {
  2236. +          case 'a':
  2237. +              proto_config(PROTO_AUTHENTICATE, 1);
  2238. +--- 646,652 ----
  2239. +      /*
  2240. +       * Decode argument list
  2241. +       */
  2242. +!     while ((c = ntp_getopt(argc, argv, xntp_options)) != -1) {
  2243. +          switch (c) {
  2244. +          case 'a':
  2245. +              proto_config(PROTO_AUTHENTICATE, 1);
  2246. +diff -rc old/usr.sbin/xntp/xntpd/ntp_control.c new/usr.sbin/xntp/xntpd/ntp_control.c
  2247. +*** old/usr.sbin/xntp/xntpd/ntp_control.c    Mon Aug 10 17:42:52 1998
  2248. +--- new/usr.sbin/xntp/xntpd/ntp_control.c    Mon Aug 10 17:28:13 1998
  2249. +***************
  2250. +*** 28,34 ****
  2251. +  struct ctl_proc {
  2252. +      short control_code;    /* defined request code */
  2253. +      u_short flags;        /* flags word */
  2254. +!     void (*handler)();    /* routine to handle request */
  2255. +  };
  2256. +  
  2257. +  /*
  2258. +--- 28,35 ----
  2259. +  struct ctl_proc {
  2260. +      short control_code;    /* defined request code */
  2261. +      u_short flags;        /* flags word */
  2262. +!     void (*handler)        /* routine to handle request */
  2263. +!         P((struct recvbuf *, int));
  2264. +  };
  2265. +  
  2266. +  /*
  2267. +diff -rc old/usr.sbin/xntp/xntpd/ntp_proto.c new/usr.sbin/xntp/xntpd/ntp_proto.c
  2268. +*** old/usr.sbin/xntp/xntpd/ntp_proto.c    Mon Aug 10 17:42:52 1998
  2269. +--- new/usr.sbin/xntp/xntpd/ntp_proto.c    Mon Aug 10 17:26:57 1998
  2270. +***************
  2271. +*** 103,108 ****
  2272. +--- 103,110 ----
  2273. +  extern int debug;
  2274. +  
  2275. +  static    void    clear_all    P((void));
  2276. ++ static    int    default_get_precision P((void));
  2277. ++ 
  2278. +  
  2279. +  /*
  2280. +   * transmit - Transmit Procedure. See Section 3.4.2 of the
  2281. +diff -rc old/usr.sbin/xntp/xntpd/ntpd.c new/usr.sbin/xntp/xntpd/ntpd.c
  2282. +*** old/usr.sbin/xntp/xntpd/ntpd.c    Mon Aug 10 17:42:52 1998
  2283. +--- new/usr.sbin/xntp/xntpd/ntpd.c    Mon Aug 10 17:25:37 1998
  2284. +***************
  2285. +*** 168,187 ****
  2286. +  #endif    /* not DEBUG */
  2287. +  
  2288. +  #ifdef NO_MAIN_ALLOWED
  2289. +  CALL(xntpd,"xntpd",xntpdmain);
  2290. +  #endif
  2291. +  
  2292. +  /*
  2293. +   * Main program.  Initialize us, disconnect us from the tty if necessary,
  2294. +   * and loop waiting for I/O and/or timer expiries.
  2295. +   */
  2296. +- #if !defined(VMS)
  2297. +- void
  2298. +- #endif /* VMS */
  2299. +  #ifndef NO_MAIN_ALLOWED
  2300. +! main
  2301. +  #else
  2302. +! xntpdmain
  2303. +  #endif
  2304. +  (argc, argv)
  2305. +       int argc;
  2306. +--- 168,187 ----
  2307. +  #endif    /* not DEBUG */
  2308. +  
  2309. +  #ifdef NO_MAIN_ALLOWED
  2310. ++ void xntpdmain P((int, char *[]));
  2311. +  CALL(xntpd,"xntpd",xntpdmain);
  2312. ++ #else
  2313. ++ int main P((int, char *[]));
  2314. +  #endif
  2315. +  
  2316. +  /*
  2317. +   * Main program.  Initialize us, disconnect us from the tty if necessary,
  2318. +   * and loop waiting for I/O and/or timer expiries.
  2319. +   */
  2320. +  #ifndef NO_MAIN_ALLOWED
  2321. +! int main
  2322. +  #else
  2323. +! void xntpdmain
  2324. +  #endif
  2325. +  (argc, argv)
  2326. +       int argc;
  2327. +Only in new/usr.sbin/xntp/xntpd: obj.i386
  2328. +diff -rc old/usr.sbin/xntp/xntpd/parse.c new/usr.sbin/xntp/xntpd/parse.c
  2329. +*** old/usr.sbin/xntp/xntpd/parse.c    Mon Aug 10 17:42:54 1998
  2330. +--- new/usr.sbin/xntp/xntpd/parse.c    Mon Aug 10 17:20:52 1998
  2331. +***************
  2332. +*** 73,79 ****
  2333. +  extern clockformat_t *clockformats[];
  2334. +  extern unsigned short nformats;
  2335. +  
  2336. +! static u_long timepacket();
  2337. +  
  2338. +  /*
  2339. +   * strings support usually not in kernel - duplicated, but what the heck
  2340. +--- 73,83 ----
  2341. +  extern clockformat_t *clockformats[];
  2342. +  extern unsigned short nformats;
  2343. +  
  2344. +! static int Strlen P((char *));
  2345. +! static int Strcmp P((char *, char *));
  2346. +! static int timedout P((parse_t *, timestamp_t *));
  2347. +! static int setup_bitmaps P((parse_t *, unsigned int, unsigned int));
  2348. +! static u_long timepacket P((parse_t *));
  2349. +  
  2350. +  /*
  2351. +   * strings support usually not in kernel - duplicated, but what the heck
  2352. +***************
  2353. +*** 160,167 ****
  2354. +  static int
  2355. +  setup_bitmaps(parseio, low, high)
  2356. +    register parse_t *parseio;
  2357. +!   register unsigned short low;
  2358. +!   register unsigned short high;
  2359. +  {
  2360. +    register unsigned short i;
  2361. +    register int f = 0;
  2362. +--- 164,171 ----
  2363. +  static int
  2364. +  setup_bitmaps(parseio, low, high)
  2365. +    register parse_t *parseio;
  2366. +!   register unsigned int low;
  2367. +!   register unsigned int high;
  2368. +  {
  2369. +    register unsigned short i;
  2370. +    register int f = 0;
  2371. +***************
  2372. +*** 834,843 ****
  2373. +   */
  2374. +  /*ARGSUSED*/
  2375. +  void
  2376. +! syn_simple(parseio, ts, format, why)
  2377. +    register parse_t *parseio;
  2378. +    register timestamp_t *ts;
  2379. +!   register struct format *format;
  2380. +    register u_long why;
  2381. +  {
  2382. +    parseio->parse_dtime.parse_stime = *ts;
  2383. +--- 838,847 ----
  2384. +   */
  2385. +  /*ARGSUSED*/
  2386. +  void
  2387. +! syn_simple(parseio, ts, vf, why)
  2388. +    register parse_t *parseio;
  2389. +    register timestamp_t *ts;
  2390. +!   register void *vf;
  2391. +    register u_long why;
  2392. +  {
  2393. +    parseio->parse_dtime.parse_stime = *ts;
  2394. +diff -rc old/usr.sbin/xntp/xntpd/refclock_arc.c new/usr.sbin/xntp/xntpd/refclock_arc.c
  2395. +*** old/usr.sbin/xntp/xntpd/refclock_arc.c    Mon Aug 10 17:42:52 1998
  2396. +--- new/usr.sbin/xntp/xntpd/refclock_arc.c    Mon Aug 10 17:24:54 1998
  2397. +***************
  2398. +*** 446,452 ****
  2399. +  #define OPEN_FLAGS (O_RDWR)
  2400. +  #endif
  2401. +  
  2402. +- 
  2403. +  /*
  2404. +   * Imported from ntp_timer module
  2405. +   */
  2406. +--- 446,451 ----
  2407. +***************
  2408. +*** 511,516 ****
  2409. +--- 510,518 ----
  2410. +  
  2411. +  static void dummy_event_handler P((struct peer *));
  2412. +  static void   arc_event_handler P((struct peer *));
  2413. ++ static int space_left P((struct arcunit *));
  2414. ++ static int send_slow  P((struct arcunit *, int, char *));
  2415. ++ 
  2416. +  
  2417. +  #define QUALITY_UNKNOWN     -1 /* Indicates unknown clock quality. */
  2418. +  #define MIN_CLOCK_QUALITY    0 /* Min quality clock will return. */
  2419. +diff -rc old/usr.sbin/xntp/xntpd/refclock_atom.c new/usr.sbin/xntp/xntpd/refclock_atom.c
  2420. +*** old/usr.sbin/xntp/xntpd/refclock_atom.c    Mon Aug 10 17:42:53 1998
  2421. +--- new/usr.sbin/xntp/xntpd/refclock_atom.c    Mon Aug 10 17:23:26 1998
  2422. +***************
  2423. +*** 111,117 ****
  2424. +--- 111,119 ----
  2425. +  /*
  2426. +   * Imported from ntp_loopfilter module
  2427. +   */
  2428. ++ #ifndef PPSX
  2429. +  extern int fdpps;        /* pps file descriptor */
  2430. ++ #endif /* PPSX */
  2431. +  extern int pps_update;        /* prefer peer valid update */
  2432. +  
  2433. +  /*
  2434. +***************
  2435. +*** 144,149 ****
  2436. +--- 146,152 ----
  2437. +  #ifdef PPS
  2438. +  static    void    atom_pps    P((struct peer *));
  2439. +  #endif /* PPS */
  2440. ++ static    int    atom_cmpl_fp    P((const void *, const void *));
  2441. +  
  2442. +  /*
  2443. +   * Transfer vector
  2444. +***************
  2445. +*** 262,267 ****
  2446. +--- 265,271 ----
  2447. +  
  2448. +      pp = peer->procptr;
  2449. +      up = (struct atomunit *)pp->unitptr;
  2450. ++ 
  2451. +  #ifdef    DEBUG
  2452. +      if (debug > 2)
  2453. +          printf("pps_sample: pollcnt %d\n", up->pollcnt);
  2454. +***************
  2455. +*** 371,378 ****
  2456. +          &pp->lastrec);
  2457. +  #ifdef    DEBUG
  2458. +      if (debug > 2)
  2459. +!         printf("atom_receive: pollcnt %d, lastrec %ld\n",
  2460. +!                up->pollcnt, pp->lastrec);
  2461. +  #endif
  2462. +  
  2463. +      /*
  2464. +--- 375,382 ----
  2465. +          &pp->lastrec);
  2466. +  #ifdef    DEBUG
  2467. +      if (debug > 2)
  2468. +!         printf("atom_receive: pollcnt %d, lastrec %d\n",
  2469. +!                up->pollcnt, pp->lastrec.l_ui);
  2470. +  #endif
  2471. +  
  2472. +      /*
  2473. +diff -rc old/usr.sbin/xntp/xntpd/refclock_heath.c new/usr.sbin/xntp/xntpd/refclock_heath.c
  2474. +*** old/usr.sbin/xntp/xntpd/refclock_heath.c    Mon Aug 10 17:42:53 1998
  2475. +--- new/usr.sbin/xntp/xntpd/refclock_heath.c    Mon Aug 10 17:22:05 1998
  2476. +***************
  2477. +*** 133,138 ****
  2478. +--- 133,140 ----
  2479. +  static    void    heath_shutdown    P((int, struct peer *));
  2480. +  static    void    heath_receive    P((struct recvbuf *));
  2481. +  static    void    heath_poll    P((int, struct peer *));
  2482. ++ static    int    comparetm     P((struct tm *, struct tm *));
  2483. ++ static    time_t    invert        P((struct tm *, struct tm *(*)(const time_t *)));
  2484. +  
  2485. +  /*
  2486. +   * Transfer vector
  2487. +***************
  2488. +*** 180,193 ****
  2489. +          return 0;
  2490. +  }
  2491. +  
  2492. +! static long
  2493. +  invert(x, func)
  2494. +  struct tm *x;
  2495. +! struct tm *(*func)();
  2496. +  {
  2497. +          struct tm *y;
  2498. +          int result;
  2499. +!         long trial;
  2500. +          long lower=0L;
  2501. +          long upper=(long)((unsigned long)(~lower) >> 1);
  2502. +  
  2503. +--- 182,195 ----
  2504. +          return 0;
  2505. +  }
  2506. +  
  2507. +! static time_t
  2508. +  invert(x, func)
  2509. +  struct tm *x;
  2510. +! struct tm *(*func) P((const time_t *));
  2511. +  {
  2512. +          struct tm *y;
  2513. +          int result;
  2514. +!         time_t trial;
  2515. +          long lower=0L;
  2516. +          long upper=(long)((unsigned long)(~lower) >> 1);
  2517. +  
  2518. +diff -rc old/usr.sbin/xntp/xntpd/refclock_parse.c new/usr.sbin/xntp/xntpd/refclock_parse.c
  2519. +*** old/usr.sbin/xntp/xntpd/refclock_parse.c    Mon Aug 10 17:42:53 1998
  2520. +--- new/usr.sbin/xntp/xntpd/refclock_parse.c    Mon Aug 10 17:21:33 1998
  2521. +***************
  2522. +*** 193,211 ****
  2523. +   ** function vector for dynamically binding io handling mechanism
  2524. +   **/
  2525. +  
  2526. +  typedef struct bind
  2527. +  {
  2528. +    char   *bd_description;    /* name of type of binding */
  2529. +!   int    (*bd_init)();        /* initialize */
  2530. +!   void    (*bd_end)();        /* end */
  2531. +!   int   (*bd_setcs)();        /* set character size */
  2532. +!   int    (*bd_disable)();    /* disable */
  2533. +!   int    (*bd_enable)();        /* enable */
  2534. +!   int    (*bd_getfmt)();        /* get format */
  2535. +!   int    (*bd_setfmt)();        /* setfmt */
  2536. +!   int    (*bd_timecode)();    /* get time code */
  2537. +!   void    (*bd_receive)();    /* receive operation */
  2538. +!   void    (*bd_poll)();        /* poll operation */
  2539. +  } bind_t;
  2540. +  
  2541. +  #define PARSE_END(_X_)            (*(_X_)->binding->bd_end)(_X_)
  2542. +--- 193,222 ----
  2543. +   ** function vector for dynamically binding io handling mechanism
  2544. +   **/
  2545. +  
  2546. ++ struct parseunit;
  2547. +  typedef struct bind
  2548. +  {
  2549. +    char   *bd_description;    /* name of type of binding */
  2550. +!   int    (*bd_init)        /* initialize */
  2551. +!     P((struct parseunit *));
  2552. +!   void    (*bd_end)        /* end */
  2553. +!     P((struct parseunit *));
  2554. +!   int   (*bd_setcs)        /* set character size */
  2555. +!     P((struct parseunit *, parsectl_t *));
  2556. +!   int    (*bd_disable)        /* disable */
  2557. +!     P((struct parseunit *));
  2558. +!   int    (*bd_enable)        /* enable */
  2559. +!     P((struct parseunit *));
  2560. +!   int    (*bd_getfmt)        /* get format */
  2561. +!     P((struct parseunit *, parsectl_t *));
  2562. +!   int    (*bd_setfmt)        /* setfmt */
  2563. +!     P((struct parseunit *, parsectl_t *));
  2564. +!   int    (*bd_timecode)        /* get time code */
  2565. +!     P((struct parseunit *, parsectl_t *));
  2566. +!   void    (*bd_receive)    /* receive operation */
  2567. +!     P((struct recvbuf *));
  2568. +!   void    (*bd_poll)        /* poll operation */
  2569. +!     P((struct parseunit *));
  2570. +  } bind_t;
  2571. +  
  2572. +  #define PARSE_END(_X_)            (*(_X_)->binding->bd_end)(_X_)
  2573. +***************
  2574. +*** 397,406 ****
  2575. +  } poll_info_t;
  2576. +  
  2577. +  #define NO_CL_FLAGS    0
  2578. +! #define NO_POLL        (void (*)())0
  2579. +! #define NO_INIT        (int  (*)())0
  2580. +! #define NO_END        (void (*)())0
  2581. +! #define NO_EVENT    (void (*)())0
  2582. +  #define NO_DATA        (void *)0
  2583. +  #define NO_FORMAT    ""
  2584. +  #define NO_PPSDELAY     0
  2585. +--- 408,417 ----
  2586. +  } poll_info_t;
  2587. +  
  2588. +  #define NO_CL_FLAGS    0
  2589. +! #define NO_POLL        (void (*) P((struct parseunit *)))0
  2590. +! #define NO_INIT        (int  (*) P((struct parseunit *)))0
  2591. +! #define NO_END        (void (*) P((struct parseunit *)))0
  2592. +! #define NO_EVENT    (void (*) P((struct parseunit *, int)))0
  2593. +  #define NO_DATA        (void *)0
  2594. +  #define NO_FORMAT    ""
  2595. +  #define NO_PPSDELAY     0
  2596. +***************
  2597. +*** 764,773 ****
  2598. +  static struct parse_clockinfo
  2599. +  {
  2600. +    u_long  cl_flags;        /* operation flags (io modes) */
  2601. +!   void  (*cl_poll)();        /* active poll routine */
  2602. +!   int   (*cl_init)();        /* active poll init routine */
  2603. +!   void  (*cl_event)();        /* special event handling (e.g. reset clock) */
  2604. +!   void  (*cl_end)();        /* active poll end routine */
  2605. +    void   *cl_data;        /* local data area for "poll" mechanism */
  2606. +    u_fp    cl_rootdelay;        /* rootdelay */
  2607. +    u_long  cl_basedelay;        /* current offset - unsigned l_fp fractional part */
  2608. +--- 775,788 ----
  2609. +  static struct parse_clockinfo
  2610. +  {
  2611. +    u_long  cl_flags;        /* operation flags (io modes) */
  2612. +!   void  (*cl_poll)        /* active poll routine */
  2613. +!     P((struct parseunit *));
  2614. +!   int   (*cl_init)        /* active poll init routine */
  2615. +!     P((struct parseunit *));
  2616. +!   void  (*cl_event)        /* special event handling (e.g. reset clock) */
  2617. +!     P((struct parseunit *, int));
  2618. +!   void  (*cl_end)        /* active poll end routine */
  2619. +!     P((struct parseunit *));
  2620. +    void   *cl_data;        /* local data area for "poll" mechanism */
  2621. +    u_fp    cl_rootdelay;        /* rootdelay */
  2622. +    u_long  cl_basedelay;        /* current offset - unsigned l_fp fractional part */
  2623. +***************
  2624. +*** 1261,1266 ****
  2625. +--- 1276,1290 ----
  2626. +  static void local_receive  P((struct recvbuf *));
  2627. +  static void local_poll     P((struct parseunit *));
  2628. +  
  2629. ++ static bind_t *init_iobinding P((struct parseunit *));
  2630. ++ static char *parsestate P((u_long, char *));
  2631. ++ static char *parsestatus P((u_long, char *));
  2632. ++ static char *clockstatus P((u_long));
  2633. ++ static char *mkascii P((char *, long, char *, long));
  2634. ++ static void parse_statistics P((struct parseunit *));
  2635. ++ static void cparse_statistics P((struct peer *));
  2636. ++ 
  2637. ++ 
  2638. +  static bind_t io_bindings[] =
  2639. +  {
  2640. +  #ifdef STREAM
  2641. +***************
  2642. +*** 4095,4101 ****
  2643. +    u_char *txt;            /* pointer to actual data buffer */
  2644. +  };
  2645. +  
  2646. +! void
  2647. +  sendcmd(buf, c)
  2648. +    struct txbuf *buf;
  2649. +    u_char c;
  2650. +--- 4119,4133 ----
  2651. +    u_char *txt;            /* pointer to actual data buffer */
  2652. +  };
  2653. +  
  2654. +! static void sendcmd  P((struct txbuf *, u_char));
  2655. +! static void sendbyte P((struct txbuf *, u_char));
  2656. +! static void sendetx  P((struct txbuf *, struct parseunit *));
  2657. +! #if 0
  2658. +! static void sendint  P((struct txbuf *, int));
  2659. +! #endif
  2660. +! static void sendflt  P((struct txbuf *, double));
  2661. +! 
  2662. +! static void
  2663. +  sendcmd(buf, c)
  2664. +    struct txbuf *buf;
  2665. +    u_char c;
  2666. +***************
  2667. +*** 4105,4111 ****
  2668. +    buf->idx = 2;
  2669. +  }
  2670. +  
  2671. +! void sendbyte(buf, b)
  2672. +    struct txbuf *buf;
  2673. +    u_char b;
  2674. +  {
  2675. +--- 4137,4144 ----
  2676. +    buf->idx = 2;
  2677. +  }
  2678. +  
  2679. +! static void
  2680. +! sendbyte(buf, b)
  2681. +    struct txbuf *buf;
  2682. +    u_char b;
  2683. +  {
  2684. +***************
  2685. +*** 4114,4120 ****
  2686. +    buf->txt[buf->idx++] = b;
  2687. +  }
  2688. +  
  2689. +! void
  2690. +  sendetx(buf, parse)
  2691. +    struct txbuf *buf;
  2692. +    struct parseunit *parse;
  2693. +--- 4147,4153 ----
  2694. +    buf->txt[buf->idx++] = b;
  2695. +  }
  2696. +  
  2697. +! static void
  2698. +  sendetx(buf, parse)
  2699. +    struct txbuf *buf;
  2700. +    struct parseunit *parse;
  2701. +***************
  2702. +*** 4133,4139 ****
  2703. +      }
  2704. +  }
  2705. +  
  2706. +! void  
  2707. +  sendint(buf, a)
  2708. +    struct txbuf *buf;
  2709. +    int a;
  2710. +--- 4166,4173 ----
  2711. +      }
  2712. +  }
  2713. +  
  2714. +! #if 0
  2715. +! static void  
  2716. +  sendint(buf, a)
  2717. +    struct txbuf *buf;
  2718. +    int a;
  2719. +***************
  2720. +*** 4142,4149 ****
  2721. +    sendbyte(buf, (a>>8) & 0xff);
  2722. +    sendbyte(buf, a & 0xff);
  2723. +  }
  2724. +  
  2725. +! void
  2726. +  sendflt(buf, a)
  2727. +    struct txbuf *buf;
  2728. +    float a;
  2729. +--- 4176,4184 ----
  2730. +    sendbyte(buf, (a>>8) & 0xff);
  2731. +    sendbyte(buf, a & 0xff);
  2732. +  }
  2733. ++ #endif
  2734. +  
  2735. +! static void
  2736. +  sendflt(buf, a)
  2737. +    struct txbuf *buf;
  2738. +    float a;
  2739. +diff -rc old/usr.sbin/xntp/xntpdc/ntpdc.c new/usr.sbin/xntp/xntpdc/ntpdc.c
  2740. +*** old/usr.sbin/xntp/xntpdc/ntpdc.c    Mon Aug 10 17:42:54 1998
  2741. +--- new/usr.sbin/xntp/xntpdc/ntpdc.c    Mon Aug 10 17:31:01 1998
  2742. +***************
  2743. +*** 239,245 ****
  2744. +--- 239,248 ----
  2745. +  int debug;
  2746. +  
  2747. +  #ifdef NO_MAIN_ALLOWED
  2748. ++ void xntpdcmain P((int, char *[]));
  2749. +  CALL(xntpdc,"xntpdc",xntpdcmain);
  2750. ++ #else
  2751. ++ int main P((int, char *[]));
  2752. +  #endif
  2753. +  
  2754. +  #ifdef SYS_VXWORKS
  2755. +***************
  2756. +*** 260,272 ****
  2757. +  /*
  2758. +   * main - parse arguments and handle options
  2759. +   */
  2760. +! #if !defined(VMS)
  2761. +! void
  2762. +! #endif /* VMS */
  2763. +! #ifndef NO_MAIN_ALLOWED
  2764. +! main
  2765. +  #else
  2766. +! xntpdcmain
  2767. +  #endif
  2768. +  (argc, argv)
  2769. +  int argc;
  2770. +--- 263,272 ----
  2771. +  /*
  2772. +   * main - parse arguments and handle options
  2773. +   */
  2774. +! #ifdef NO_MAIN_ALLOWED
  2775. +! void xntpdcmain
  2776. +  #else
  2777. +! int main
  2778. +  #endif
  2779. +  (argc, argv)
  2780. +  int argc;
  2781. +***************
  2782. +*** 286,292 ****
  2783. +  #endif
  2784. +  
  2785. +      progname = argv[0];
  2786. +!     while ((c = ntp_getopt(argc, argv, "c:dilnps")) != EOF)
  2787. +          switch (c) {
  2788. +          case 'c':
  2789. +              ADDCMD(ntp_optarg);
  2790. +--- 286,292 ----
  2791. +  #endif
  2792. +  
  2793. +      progname = argv[0];
  2794. +!     while ((c = ntp_getopt(argc, argv, "c:dilnps")) != -1)
  2795. +          switch (c) {
  2796. +          case 'c':
  2797. +              ADDCMD(ntp_optarg);
  2798. +diff -rc old/usr.sbin/xntp/xntpdc/ntpdc_ops.c new/usr.sbin/xntp/xntpdc/ntpdc_ops.c
  2799. +*** old/usr.sbin/xntp/xntpdc/ntpdc_ops.c    Mon Aug 10 17:42:54 1998
  2800. +--- new/usr.sbin/xntp/xntpdc/ntpdc_ops.c    Mon Aug 10 17:29:52 1998
  2801. +***************
  2802. +*** 27,32 ****
  2803. +--- 27,33 ----
  2804. +  static    void    peers        P((struct parse *, FILE *));
  2805. +  static    void    dmpeers        P((struct parse *, FILE *));
  2806. +  static    void    dopeers        P((struct parse *, FILE *, int));
  2807. ++ static    char   *refid_string    P((u_int32, int));
  2808. +  static    void    printpeer    P((struct info_peer *, FILE *));
  2809. +  static    void    showpeer    P((struct parse *, FILE *));
  2810. +  static    void    peerstats    P((struct parse *, FILE *));
  2811. +***************
  2812. +*** 71,76 ****
  2813. +--- 72,78 ----
  2814. +  static    void    fudge        P((struct parse *, FILE *));
  2815. +  static    void    clkbug        P((struct parse *, FILE *));
  2816. +  static    void    kerninfo    P((struct parse *, FILE *));
  2817. ++ 
  2818. +  
  2819. +  /*
  2820. +   * Commands we understand.  Ntpdc imports this.
  2821. +Only in new/usr.sbin/xntp/xntpdc: obj.i386
  2822. diff -urN xntp3-5.93d/xntpd/ntp_config.c xntp3-5.93e/xntpd/ntp_config.c
  2823. --- xntp3-5.93d/xntpd/ntp_config.c    Tue Mar  3 00:28:54 1998
  2824. +++ xntp3-5.93e/xntpd/ntp_config.c    Mon Aug 10 18:16:34 1998
  2825. @@ -484,7 +484,7 @@
  2826.      /*
  2827.       * Decode argument list
  2828.       */
  2829. -    while ((c = ntp_getopt(argc, argv, xntp_options)) != EOF)
  2830. +    while ((c = ntp_getopt(argc, argv, xntp_options)) != -1)
  2831.          switch (c) {
  2832.  #ifdef DEBUG
  2833.          case 'd':
  2834. @@ -646,7 +646,7 @@
  2835.      /*
  2836.       * Decode argument list
  2837.       */
  2838. -    while ((c = ntp_getopt(argc, argv, xntp_options)) != EOF) {
  2839. +    while ((c = ntp_getopt(argc, argv, xntp_options)) != -1) {
  2840.          switch (c) {
  2841.          case 'a':
  2842.              proto_config(PROTO_AUTHENTICATE, 1);
  2843. diff -urN xntp3-5.93d/xntpd/ntp_control.c xntp3-5.93e/xntpd/ntp_control.c
  2844. --- xntp3-5.93d/xntpd/ntp_control.c    Tue Mar 17 18:02:17 1998
  2845. +++ xntp3-5.93e/xntpd/ntp_control.c    Mon Aug 10 18:16:34 1998
  2846. @@ -28,7 +28,8 @@
  2847.  struct ctl_proc {
  2848.      short control_code;    /* defined request code */
  2849.      u_short flags;        /* flags word */
  2850. -    void (*handler)();    /* routine to handle request */
  2851. +    void (*handler)        /* routine to handle request */
  2852. +        P((struct recvbuf *, int));
  2853.  };
  2854.  
  2855.  /*
  2856. diff -urN xntp3-5.93d/xntpd/ntp_proto.c xntp3-5.93e/xntpd/ntp_proto.c
  2857. --- xntp3-5.93d/xntpd/ntp_proto.c    Fri Apr 24 21:03:59 1998
  2858. +++ xntp3-5.93e/xntpd/ntp_proto.c    Mon Aug 10 18:16:34 1998
  2859. @@ -103,7 +103,9 @@
  2860.  extern int debug;
  2861.  
  2862.  static    void    clear_all    P((void));
  2863. +static    int    default_get_precision P((void));
  2864.  
  2865. +
  2866.  /*
  2867.   * transmit - Transmit Procedure. See Section 3.4.2 of the
  2868.   *    specification.
  2869. diff -urN xntp3-5.93d/xntpd/ntpd.c xntp3-5.93e/xntpd/ntpd.c
  2870. --- xntp3-5.93d/xntpd/ntpd.c    Sat Apr 25 17:05:57 1998
  2871. +++ xntp3-5.93e/xntpd/ntpd.c    Mon Aug 10 18:16:34 1998
  2872. @@ -168,20 +168,20 @@
  2873.  #endif    /* not DEBUG */
  2874.  
  2875.  #ifdef NO_MAIN_ALLOWED
  2876. +void xntpdmain P((int, char *[]));
  2877.  CALL(xntpd,"xntpd",xntpdmain);
  2878. +#else
  2879. +int main P((int, char *[]));
  2880.  #endif
  2881.  
  2882.  /*
  2883.   * Main program.  Initialize us, disconnect us from the tty if necessary,
  2884.   * and loop waiting for I/O and/or timer expiries.
  2885.   */
  2886. -#if !defined(VMS)
  2887. -void
  2888. -#endif /* VMS */
  2889.  #ifndef NO_MAIN_ALLOWED
  2890. -main
  2891. +int main
  2892.  #else
  2893. -xntpdmain
  2894. +void xntpdmain
  2895.  #endif
  2896.  (argc, argv)
  2897.       int argc;
  2898. diff -urN xntp3-5.93d/xntpd/refclock_arc.c xntp3-5.93e/xntpd/refclock_arc.c
  2899. --- xntp3-5.93d/xntpd/refclock_arc.c    Fri Apr 24 19:14:20 1998
  2900. +++ xntp3-5.93e/xntpd/refclock_arc.c    Mon Aug 10 18:17:05 1998
  2901. @@ -446,7 +446,6 @@
  2902.  #define OPEN_FLAGS (O_RDWR)
  2903.  #endif
  2904.  
  2905. -
  2906.  /*
  2907.   * Imported from ntp_timer module
  2908.   */
  2909. @@ -511,6 +510,9 @@
  2910.  
  2911.  static void dummy_event_handler P((struct peer *));
  2912.  static void   arc_event_handler P((struct peer *));
  2913. +static int space_left P((struct arcunit *));
  2914. +static int send_slow  P((struct arcunit *, int, char *));
  2915. +
  2916.  
  2917.  #define QUALITY_UNKNOWN     -1 /* Indicates unknown clock quality. */
  2918.  #define MIN_CLOCK_QUALITY    0 /* Min quality clock will return. */
  2919. diff -urN xntp3-5.93d/xntpd/refclock_atom.c xntp3-5.93e/xntpd/refclock_atom.c
  2920. --- xntp3-5.93d/xntpd/refclock_atom.c    Tue May  5 03:25:28 1998
  2921. +++ xntp3-5.93e/xntpd/refclock_atom.c    Mon Aug 10 18:17:05 1998
  2922. @@ -111,7 +111,9 @@
  2923.  /*
  2924.   * Imported from ntp_loopfilter module
  2925.   */
  2926. +#ifndef PPSX
  2927.  extern int fdpps;        /* pps file descriptor */
  2928. +#endif /* PPSX */
  2929.  extern int pps_update;        /* prefer peer valid update */
  2930.  
  2931.  /*
  2932. @@ -144,6 +146,7 @@
  2933.  #ifdef PPS
  2934.  static    void    atom_pps    P((struct peer *));
  2935.  #endif /* PPS */
  2936. +static    int    atom_cmpl_fp    P((const void *, const void *));
  2937.  
  2938.  /*
  2939.   * Transfer vector
  2940. @@ -262,6 +265,7 @@
  2941.  
  2942.      pp = peer->procptr;
  2943.      up = (struct atomunit *)pp->unitptr;
  2944. +
  2945.  #ifdef    DEBUG
  2946.      if (debug > 2)
  2947.          printf("pps_sample: pollcnt %d\n", up->pollcnt);
  2948. @@ -371,8 +375,8 @@
  2949.          &pp->lastrec);
  2950.  #ifdef    DEBUG
  2951.      if (debug > 2)
  2952. -        printf("atom_receive: pollcnt %d, lastrec %ld\n",
  2953. -               up->pollcnt, pp->lastrec);
  2954. +        printf("atom_receive: pollcnt %d, lastrec %d\n",
  2955. +               up->pollcnt, pp->lastrec.l_ui);
  2956.  #endif
  2957.  
  2958.      /*
  2959. diff -urN xntp3-5.93d/xntpd/refclock_heath.c xntp3-5.93e/xntpd/refclock_heath.c
  2960. --- xntp3-5.93d/xntpd/refclock_heath.c    Sun Aug 17 00:16:03 1997
  2961. +++ xntp3-5.93e/xntpd/refclock_heath.c    Mon Aug 10 18:17:05 1998
  2962. @@ -133,6 +133,8 @@
  2963.  static    void    heath_shutdown    P((int, struct peer *));
  2964.  static    void    heath_receive    P((struct recvbuf *));
  2965.  static    void    heath_poll    P((int, struct peer *));
  2966. +static    int    comparetm     P((struct tm *, struct tm *));
  2967. +static    time_t    invert        P((struct tm *, struct tm *(*)(const time_t *)));
  2968.  
  2969.  /*
  2970.   * Transfer vector
  2971. @@ -180,14 +182,14 @@
  2972.          return 0;
  2973.  }
  2974.  
  2975. -static long
  2976. +static time_t
  2977.  invert(x, func)
  2978.  struct tm *x;
  2979. -struct tm *(*func)();
  2980. +struct tm *(*func) P((const time_t *));
  2981.  {
  2982.          struct tm *y;
  2983.          int result;
  2984. -        long trial;
  2985. +        time_t trial;
  2986.          long lower=0L;
  2987.          long upper=(long)((unsigned long)(~lower) >> 1);
  2988.  
  2989. diff -urN xntp3-5.93d/xntpd/refclock_parse.c xntp3-5.93e/xntpd/refclock_parse.c
  2990. --- xntp3-5.93d/xntpd/refclock_parse.c    Sat Sep 27 00:17:45 1997
  2991. +++ xntp3-5.93e/xntpd/refclock_parse.c    Mon Aug 10 18:17:06 1998
  2992. @@ -193,19 +193,30 @@
  2993.   ** function vector for dynamically binding io handling mechanism
  2994.   **/
  2995.  
  2996. +struct parseunit;
  2997.  typedef struct bind
  2998.  {
  2999.    char   *bd_description;    /* name of type of binding */
  3000. -  int    (*bd_init)();        /* initialize */
  3001. -  void    (*bd_end)();        /* end */
  3002. -  int   (*bd_setcs)();        /* set character size */
  3003. -  int    (*bd_disable)();    /* disable */
  3004. -  int    (*bd_enable)();        /* enable */
  3005. -  int    (*bd_getfmt)();        /* get format */
  3006. -  int    (*bd_setfmt)();        /* setfmt */
  3007. -  int    (*bd_timecode)();    /* get time code */
  3008. -  void    (*bd_receive)();    /* receive operation */
  3009. -  void    (*bd_poll)();        /* poll operation */
  3010. +  int    (*bd_init)        /* initialize */
  3011. +    P((struct parseunit *));
  3012. +  void    (*bd_end)        /* end */
  3013. +    P((struct parseunit *));
  3014. +  int   (*bd_setcs)        /* set character size */
  3015. +    P((struct parseunit *, parsectl_t *));
  3016. +  int    (*bd_disable)        /* disable */
  3017. +    P((struct parseunit *));
  3018. +  int    (*bd_enable)        /* enable */
  3019. +    P((struct parseunit *));
  3020. +  int    (*bd_getfmt)        /* get format */
  3021. +    P((struct parseunit *, parsectl_t *));
  3022. +  int    (*bd_setfmt)        /* setfmt */
  3023. +    P((struct parseunit *, parsectl_t *));
  3024. +  int    (*bd_timecode)        /* get time code */
  3025. +    P((struct parseunit *, parsectl_t *));
  3026. +  void    (*bd_receive)    /* receive operation */
  3027. +    P((struct recvbuf *));
  3028. +  void    (*bd_poll)        /* poll operation */
  3029. +    P((struct parseunit *));
  3030.  } bind_t;
  3031.  
  3032.  #define PARSE_END(_X_)            (*(_X_)->binding->bd_end)(_X_)
  3033. @@ -397,10 +408,10 @@
  3034.  } poll_info_t;
  3035.  
  3036.  #define NO_CL_FLAGS    0
  3037. -#define NO_POLL        (void (*)())0
  3038. -#define NO_INIT        (int  (*)())0
  3039. -#define NO_END        (void (*)())0
  3040. -#define NO_EVENT    (void (*)())0
  3041. +#define NO_POLL        (void (*) P((struct parseunit *)))0
  3042. +#define NO_INIT        (int  (*) P((struct parseunit *)))0
  3043. +#define NO_END        (void (*) P((struct parseunit *)))0
  3044. +#define NO_EVENT    (void (*) P((struct parseunit *, int)))0
  3045.  #define NO_DATA        (void *)0
  3046.  #define NO_FORMAT    ""
  3047.  #define NO_PPSDELAY     0
  3048. @@ -764,10 +775,14 @@
  3049.  static struct parse_clockinfo
  3050.  {
  3051.    u_long  cl_flags;        /* operation flags (io modes) */
  3052. -  void  (*cl_poll)();        /* active poll routine */
  3053. -  int   (*cl_init)();        /* active poll init routine */
  3054. -  void  (*cl_event)();        /* special event handling (e.g. reset clock) */
  3055. -  void  (*cl_end)();        /* active poll end routine */
  3056. +  void  (*cl_poll)        /* active poll routine */
  3057. +    P((struct parseunit *));
  3058. +  int   (*cl_init)        /* active poll init routine */
  3059. +    P((struct parseunit *));
  3060. +  void  (*cl_event)        /* special event handling (e.g. reset clock) */
  3061. +    P((struct parseunit *, int));
  3062. +  void  (*cl_end)        /* active poll end routine */
  3063. +    P((struct parseunit *));
  3064.    void   *cl_data;        /* local data area for "poll" mechanism */
  3065.    u_fp    cl_rootdelay;        /* rootdelay */
  3066.    u_long  cl_basedelay;        /* current offset - unsigned l_fp fractional part */
  3067. @@ -1261,6 +1276,15 @@
  3068.  static void local_receive  P((struct recvbuf *));
  3069.  static void local_poll     P((struct parseunit *));
  3070.  
  3071. +static bind_t *init_iobinding P((struct parseunit *));
  3072. +static char *parsestate P((u_long, char *));
  3073. +static char *parsestatus P((u_long, char *));
  3074. +static char *clockstatus P((u_long));
  3075. +static char *mkascii P((char *, long, char *, long));
  3076. +static void parse_statistics P((struct parseunit *));
  3077. +static void cparse_statistics P((struct peer *));
  3078. +
  3079. +
  3080.  static bind_t io_bindings[] =
  3081.  {
  3082.  #ifdef STREAM
  3083. @@ -4095,7 +4119,15 @@
  3084.    u_char *txt;            /* pointer to actual data buffer */
  3085.  };
  3086.  
  3087. -void
  3088. +static void sendcmd  P((struct txbuf *, u_char));
  3089. +static void sendbyte P((struct txbuf *, u_char));
  3090. +static void sendetx  P((struct txbuf *, struct parseunit *));
  3091. +#if 0
  3092. +static void sendint  P((struct txbuf *, int));
  3093. +#endif
  3094. +static void sendflt  P((struct txbuf *, double));
  3095. +
  3096. +static void
  3097.  sendcmd(buf, c)
  3098.    struct txbuf *buf;
  3099.    u_char c;
  3100. @@ -4105,7 +4137,8 @@
  3101.    buf->idx = 2;
  3102.  }
  3103.  
  3104. -void sendbyte(buf, b)
  3105. +static void
  3106. +sendbyte(buf, b)
  3107.    struct txbuf *buf;
  3108.    u_char b;
  3109.  {
  3110. @@ -4114,7 +4147,7 @@
  3111.    buf->txt[buf->idx++] = b;
  3112.  }
  3113.  
  3114. -void
  3115. +static void
  3116.  sendetx(buf, parse)
  3117.    struct txbuf *buf;
  3118.    struct parseunit *parse;
  3119. @@ -4133,7 +4166,8 @@
  3120.      }
  3121.  }
  3122.  
  3123. -void  
  3124. +#if 0
  3125. +static void  
  3126.  sendint(buf, a)
  3127.    struct txbuf *buf;
  3128.    int a;
  3129. @@ -4142,8 +4176,9 @@
  3130.    sendbyte(buf, (a>>8) & 0xff);
  3131.    sendbyte(buf, a & 0xff);
  3132.  }
  3133. +#endif
  3134.  
  3135. -void
  3136. +static void
  3137.  sendflt(buf, a)
  3138.    struct txbuf *buf;
  3139.    float a;
  3140. diff -urN xntp3-5.93d/xntpdc/ntpdc.c xntp3-5.93e/xntpdc/ntpdc.c
  3141. --- xntp3-5.93d/xntpdc/ntpdc.c    Thu Mar  5 22:08:41 1998
  3142. +++ xntp3-5.93e/xntpdc/ntpdc.c    Mon Aug 10 18:17:06 1998
  3143. @@ -239,7 +239,10 @@
  3144.  int debug;
  3145.  
  3146.  #ifdef NO_MAIN_ALLOWED
  3147. +void xntpdcmain P((int, char *[]));
  3148.  CALL(xntpdc,"xntpdc",xntpdcmain);
  3149. +#else
  3150. +int main P((int, char *[]));
  3151.  #endif
  3152.  
  3153.  #ifdef SYS_VXWORKS
  3154. @@ -260,13 +263,10 @@
  3155.  /*
  3156.   * main - parse arguments and handle options
  3157.   */
  3158. -#if !defined(VMS)
  3159. -void
  3160. -#endif /* VMS */
  3161. -#ifndef NO_MAIN_ALLOWED
  3162. -main
  3163. +#ifdef NO_MAIN_ALLOWED
  3164. +void xntpdcmain
  3165.  #else
  3166. -xntpdcmain
  3167. +int main
  3168.  #endif
  3169.  (argc, argv)
  3170.  int argc;
  3171. @@ -286,7 +286,7 @@
  3172.  #endif
  3173.  
  3174.      progname = argv[0];
  3175. -    while ((c = ntp_getopt(argc, argv, "c:dilnps")) != EOF)
  3176. +    while ((c = ntp_getopt(argc, argv, "c:dilnps")) != -1)
  3177.          switch (c) {
  3178.          case 'c':
  3179.              ADDCMD(ntp_optarg);
  3180. diff -urN xntp3-5.93d/xntpdc/ntpdc_ops.c xntp3-5.93e/xntpdc/ntpdc_ops.c
  3181. --- xntp3-5.93d/xntpdc/ntpdc_ops.c    Sun Mar 15 03:52:15 1998
  3182. +++ xntp3-5.93e/xntpdc/ntpdc_ops.c    Mon Aug 10 18:17:06 1998
  3183. @@ -27,6 +27,7 @@
  3184.  static    void    peers        P((struct parse *, FILE *));
  3185.  static    void    dmpeers        P((struct parse *, FILE *));
  3186.  static    void    dopeers        P((struct parse *, FILE *, int));
  3187. +static    char   *refid_string    P((u_int32, int));
  3188.  static    void    printpeer    P((struct info_peer *, FILE *));
  3189.  static    void    showpeer    P((struct parse *, FILE *));
  3190.  static    void    peerstats    P((struct parse *, FILE *));
  3191. @@ -72,6 +73,7 @@
  3192.  static    void    clkbug        P((struct parse *, FILE *));
  3193.  static    void    kerninfo    P((struct parse *, FILE *));
  3194.  
  3195. +
  3196.  /*
  3197.   * Commands we understand.  Ntpdc imports this.
  3198.   */
  3199.